我们有一个系统可以接收来自未知来源的各种PDF,然后将它们用作Prawn生成的新PDF的模板。
偶尔有些PDF不能作为Prawn的模板 - 它们会触发一般的Prawn错误(“Prawn::Errors::TemplateError => Error reading template file. If you are sure it's a valid PDF, it may be a bug.
”),或者生成的PDF格式错误。
(这是一个已知的问题,有些PDF在Prawn中不能用作模板,所以我不打算在这里解决这个问题: [1] [2])
如果我使用任何有问题的PDF,并使用预览>手动将它们重新保存在我的Mac上;另存为[新PDF],我可以随时将它们用作Prawn模板,没有任何问题。
我的问题是,是否有一些(开源)服务器端实用程序我可以使用可能能够做同样的事情 - 即将有问题的PDF处理成Prawn可以使用的东西?
答案 0 :(得分:0)
Yarin,至少部分取决于PDF首先不起作用的原因。如果您在使用Apple(非常糟糕的)预览PDF代码重新保存后可以使用它们,您应该能够使用多种不同的策略获得相同的结果:
- )使用实际的PDF库打开并保存PDF文件(Adobe和Global Graphics中的库会浮现在脑海中)。这些通常是商业产品,但(我知道最好的Adobe库)它们允许您打开文件并保存它,在此过程中执行一些优化。 Adobe库目前通过名为DataLogics(http://www.datalogics.com)
的公司获得许可- )使用嵌入这些库的商业产品。我想到了callas pdfToolbox(警告,我是这个产品的附属品)。这基本上为您提供了与前一点相同的可能性,但是在一个更易于使用的包中(例如命令行使用)。
- )使用开源产品。我不太适合为此提供有用的链接。
根据您的工作流程和文件,还有另一种方法可行。在图形艺术中,坏文件有时通过称为重新提取的过程“变得更好”;您基本上将PDF文件转换为PostScript并再次将postscript重新提炼为PDF。因为这会重写整个文件结构,所以它经常修复基本问题。但是,当您使用不同的文件格式时,它也会带来风险。像GhostScript这样的库(观察许可条件)可能允许你这样做。
鉴于您的文件似乎只是通过使用预览来修复,我认为重新开发的方法会过于危险和过度杀伤。我会研究找到一个可以自动打开和保存文件的好的PDF库。