我正在寻找一个Java库,让您以最少的内存顺序编写大型PDF。我看过的大多数库都必须先在内存中构建文档才能实际编写它。
我必须处理的问题是OutOfMemoryErrors。如果我可以在需要时以编程方式刷新编写器,那将是很好的,例如对于每一页。
有人有任何建议吗?我需要一些带有LGPL许可证的东西(所以不是GPL或iText使用的Affero GPL)。
答案 0 :(得分:3)
您可以使用iText执行此操作。它支持writing to OutputStream
s。
答案 1 :(得分:1)
Docmosis的免费版本具有相当开放的许可,因此它可能适合您。它使用的模板方法与构建代码不同。 Docmosis以基于流的方式处理所有文档,因为它旨在用于单独的并行使用和大型文档。它还允许您将最耗费CPU的部件处理卸载到另一台服务器。希望有所帮助。
答案 2 :(得分:0)
我实际上,和你一样有同样的问题,一个朋友帮助我,但是他在C#中使用了一个名为GhostScriptSharp的api,你应该检查它。
我不能给你一份代码副本,因为它受版权保护,但我相信它会帮助你,因为我认为这个工具是在Java上构建的。
答案 3 :(得分:0)
jPod可以交换间接对象并支持增量写入。
这仍然不是最佳的,因为你需要在每次冲洗时增加“增量”,但总比没有好......
修改
Öhhh - 这是自我描述代码的着名例子之一:-)你是对的,不是很多教程或者那个 - 但是Javadoc非常好。
这仍然是您填充页面的问题?这些也是处理内容流的例子(DrawText,..)。 但是 jPod不像iText,jasper或者其他什么。只有PDF模型抽象。你没有“Layouter”或“Renderer”来创建文本,html或类似内容的页面内容。你是怎么做到的?