2011-01-14 24 views
0

我已经构建了一个应用程序,可以自动填写PDF中的表单域。然后,它获得各种资产并将它们组合在一起以生成“印刷准备”产品。所有这些都是使用iTextSharp的魔力来完成的。当表单域被填充后,它们将被平铺为文本。问题是,即使嵌入字体,他们也没有真正以有意义的方式附加到表单字段(如直接文本元素),并且打印机抱怨由于这种情况,pdf正在生成许可错误。我研究了一下,它似乎是表单字段的本质。PDF概述文本 - Acrobat序列的自动化

我们正在合作的艺术家要求我们研究一种方法来“平整”从平坦化表单字段创建的文本。我发现使用自定义预设运行PDF优化器可以在Acrobat中使用文本大纲,甚至更好,我可以生成运行此PDF命令的Acrobat序列。问题是序列无法自动完成。

我找到了一个名为AutoBatch的插件,它允许通过批处理文件在命令行上执行Sequences。缺点是这需要在运行此应用程序的服务器上安装Acrobat Pro和Plug-in。此外,它似乎是一个矫枉过正的解决方案,以概述文本在pdf中。就我所知,在这一点上iTextSharp可能会允许我执行这个程序化,但在google上搜索这样的东西会返回很少的结果,而且没有任何相关性。

所以问题:是否有更好的方法来概述pdf中的文本比我实施的当前解决方案还是我有点卡住?

TLDR; PDF是使用非标准字体生成的。我需要“概述”这些文字才能将其发送给打印机。目前使用AutoBatch Acrobat插件从命令行执行Acrobat序列。似乎过度,想知道是否有人知道更好的方式来自动化字体大纲。

回答

0

我也在印刷环境中,并且使用“箱盖”形式大量缩短用于生产箱盖的代码。
我简单一点“pdfStamper.FormFlattening = true;”和打印机(施乐DP180和DC5000)在使用PDF时没有问题。

当我忘记FormFlattening的时候,打印机给出了很多关于PDF的错误。

如果您使用的是FormFlattening,那么请检查打印机是否安装了本地字体,以便从打印引擎而不是PDF资源引用字体。

+0

我正在使用FormFlattening,但这是问题的一部分。打印机没有在本地安装的字体,他们拒绝为每个订单安装它们。据我了解,这个原因是由于对用于艺术的字体的许可限制。 – Shawn 2011-01-18 16:23:30