- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用Sejda 1.0.0.RELEASE,我基本上遵循tutorial for splitting a PDF但尝试合并(org.sejda.impl.itext5.MergeTask
,MergeParameters
,...)。一切都与FileTaskOutput
配合得很好:
parameters.setOutput(new FileTaskOutput(new File("/some/path/merged.pdf")));
但是我无法正确地将其更改为 StreamTaskOutput
:
OutputStream os = new FileOutputStream("/some/path/merged.pdf");
parameters.setOutput(new StreamTaskOutput(os));
parameters.setOutputName("merged.pdf");
没有报告错误,但结果文件无法被 Preview.app 读取,并且比上面保存的文件小大约 31 kB(总结果约为 1.2 MB)。
我的第一个想法是:流没有正确关闭!于是我在CompletionListener
末尾添加了os.close();
,还是同样的问题。
备注:
StreamTaskOutput
的原因是此合并逻辑将存在于 Web 应用程序中,并且合并的 PDF 将直接通过 HTTP 发送。我可以存储临时文件并提供该文件,但这是一种黑客行为。事实证明,原因是 StreamTaskOutput
将结果压缩到 ZIP 文件中! OutputWriterHelper.copyToStream()
是罪魁祸首。如果我将 merged.pdf
重命名为 merged.zip
,那么它就是一个有效的 ZIP 文件,其中包含完全有效的 merged.pdf
文件!
有人(亲爱的图书馆作者)可以评论一下为什么会发生这种情况吗?
最佳答案
这个想法是,当任务使用 MultipleOutputTaskParameters
生成多个输出文档时,StreamTaskOutput
必须将它们分组以便能够将它们全部写入流输出。不幸的是,Sejda 目前对 SingleOutputTaskParameters
应用相同的逻辑,因此出现了您的问题。我们可以在 Sejda 2.0 中修复此问题,因为在 SingleOutputTaskParameters
的情况下直接流式传输输出文档更有意义。对于 Sejda 1.x,我不确定如何解决与现有行为保持兼容的问题。
关于java - 使用 Sejda 合并 PDF 失败并显示流输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31961299/
我正在尝试将 pdf 与外部 CSV 文件合并。 CSV 文件和所有 pdf 文件位于同一目录中。我有以下代码,但它不断吐出错误。 Call sejda-console.bat merge -f C:
我正在使用sejda-console.bat,当涉及空格时,我在参数方面遇到了困难。 我正在尝试使用 simplesplit 功能,并且按如下方式调用控制台: call sejda-console.b
使用Sejda 1.0.0.RELEASE,我基本上遵循tutorial for splitting a PDF但尝试合并(org.sejda.impl.itext5.MergeTask,MergeP
我是一名优秀的程序员,十分优秀!