我遇到一种情况,我想将用户提供的单页 PDF 转换为合适高分辨率的黑白位图,以便进一步处理(最终以专有打印解决方案结束)。所有这些都必须在 headless 模式下运行。
由于政治和技术原因,这必须是一个纯 Java 库(即没有 Ghostscript 包装器),目前我们对免版税的开源解决方案感兴趣,但性能并不是很重要。如果这个项目成功,我们可能需要升级到性能更高的专有库,但不是现在。
我环顾四周,发现大多数 PDF 库项目都专注于操作或查看 PDF,但不太注重将其用作渲染引擎 - 这是我唯一需要的东西 - 并且至少一个与商业版本相比,开源版本中故意削弱了字体引擎。
因此,我需要推荐一个 PDF 库:
- 以 headless 模式将输入文件渲染为位图。
- 全部是 Java,没有 native 代码。
- 呈现所有常见的 PDF 文件(无效或格式不正确的文件除外)
- 是开源的,具有商业友好的许可证。
- 稳健
- 积极维护
- 可能会很慢或无法处理多个页面(商业版本中取消了更多页面的限制)
建议?
最佳答案
没有这样的库。能够正确渲染嵌入字体的Java库都是商业的(半年前我不得不对类似问题进行详尽的搜索)。
我不知道确切的原因,但相信对嵌入字体进行真实类型渲染可能会因 adobe 的许可而受到某种保护,该公司拥有 TrueType 的一些专利。充其量它只是很难实现,所以经历过这个的每个人都想要一些钱。我选择了 PDFOne,因为它们非常便宜(单座 redist 许可证约 400 美元),而且相对较好。他们在某些编码方面仍然存在问题,但对我们有用。
无论如何,我不会在这里使用java,但更喜欢使用ghostscript,因为它的速度和鲁棒性。但请注意,如果您不“谨慎”使用该库,您将违反其发布的 GPL。
关于java - 用于将 PDF 文件转换为位图的最可靠的开源 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283933/