我正在尝试以最小的内存占用(例如每个客户端/线程 20 MB)将格式化数据的大内容(例如 200 MB)流式传输为 PDF。 PDF结构是用Adobe postscript编写的,直接用PDF postscript格式编写比较复杂。我一直在使用以下 API 将内容流式传输为 PDF。
我在使用 Jasper 报告时面临的问题是,它需要将所有输入数据放入内存中,并且仅支持 OutputStream。 Jasper Reports中有一个支持数据InputStream的函数,但是在后端Jasper将整个InputStream数据加载到内存中并有效地耗尽了内存。
iText 的问题在于它是商业性的。我现在正在寻找编写自己的 Java API 来将格式化数据(包括表格、图像)直接传输到 PDF。我参考了以下书籍来了解PDF结构:
- Adobe 的 PDF 结构
- PDF 解释 (O'REILLY)
上述书籍仅涵盖基本的 PDF 格式,例如文本和 2D 图形。如何将我能够使用 HTML/CSS 生成的表格、图标和所有其他格式绘制到 PDF 中?
我需要一些关于深入理解 PDF 结构的指导。或者,是否已经有一个 Java API 支持将输入内容直接流式传输到 PDF,而无需将整个数据保存在内存中?
注意:无头浏览器(PhantomJS、wkhtmltopdf)、Apache FOP、Apache PdfBox 通过将整个数据加载到内存中来呈现 PDF。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)