【问题标题】:Programmatically "flatten" a multi-page PDF as Acrobat would do before printing以编程方式“拼合”多页 PDF,就像 Acrobat 在打印之前所做的那样
【发布时间】:2021-12-23 07:32:39
【问题描述】:

我的公司每周都会打印产品标签。我有一个 PHP 脚本,它使用 FPDI 生成一些 PDF 以发送到我们的印刷店。加起来大约有 500 页。一旦在 Acrobat 中打开,它们需要很长时间才能进行假脱机。 Acrobat 报告说,随着进度条的移动,每个页面都被“展平”了。

我们正在尝试简化流程以减少假脱机时间,因此我一直在尝试找到一种以编程方式展平文件的方法,但一直难以找到与目标相关的网络结果。

我发现的大部分内容似乎都与单页拼合有关。当我尝试遵循这些方法时,我最终会得到一个单页文件,其中所有其他页面相互重叠。

convert -density 300x300 -colorspace RGB file.pdf -quality 100 -flatten fileFlat.pdf

如果有人能帮助我指出正确的方向来模仿 Acrobat 正在做的事情,将不胜感激。

【问题讨论】:

  • 我不熟悉这种扁平化过程,但我的第一个想法是避免尝试模仿 Acrobat 的做法,而只是创建一堆较小的 PDF。即,为每个标签创建一个 PDF,这样您就有 500 个单页文件。如果这个过程是自动化的,那么有多少并不重要。
  • 嘿@AlexHowansky - 谢谢,但我不确定我们如何在印刷店结束时自动化流程。您有自动化 Acrobat 打印的经验吗?这些是大格式文件(Tabloid 11“x17”),我们需要N对1打印,所以我认为除了Acrobat之外没有任何其他方式可以打印
  • “您有自动化 Acrobat 打印的经验吗?” 好吧,不是使用 Acrobat,而是使用 postscript。我想也许你可以在你身边使用 FPDI 来预展平你的输入模板或你的结果输出。 setasign.com/products/setapdf-core/demos/flatten-annotations
  • 我假设当您打印到不支持 PDF 的打印机时会发生这种“扁平化”。我的猜测是您的输入 PDF 文件包含透明度,而您(或您的打印店?)正在打印到 PostScript 打印机。 PostScript 不支持透明度。所以 Acrobat 只做它所能做的,把页面变成位图。是的,这很慢,结果很大。它还解释了为什么使用 Ghostscript 执行相同操作(pfimage 设备)时,您的文件从 86MB 变为 737 MB。如果可以的话,我建议去掉输入中的透明度。
  • 正如@KenS 已经猜到的那样,我也猜想这是与透明度处理有关的问题。默认情况下,FPDI 将“组”条目添加到 XObject 字典以保持导入页面的透明度不变。如果您知道您正在使用没有透明度组的文档,您可以尝试将 false 传递给importPage() 的 $groupXObject 参数。你可以试试这个吗?

标签: php pdf ghostscript imagick fpdi


【解决方案1】:

我找到了这个解决方案:

gs -q -dNOPAUSE -sDEVICE=pdfimage24 -r300 -sOutputFile=fileFlat.pdf file.pdf -c quit

它产生了预期的结果,但是,文件从 86MB 变为 737MB...我确实尝试使用缩小因子,但这会导致质量损失,无法使用。

有谁知道如何改进这个过程产生的文件大小?

【讨论】:

  • 嗨@KJ - 如果我说实话,你已经失去了我的大部分。当我应用缩小因子时,文本变得像素化,一些颜色被洗掉了。这些文件最初是 RGB 300dpi,所以我想我开始担心的是它们必须保持这种状态,而前面提到的 GS 方法是让它们以这种质量准备好打印的方法,所以我必须活下去与文件大小。你同意吗?
  • @KJ - pdfimage8 生成了灰度图像...这没有用
  • 嗨@KJ - 这是一个示例文件。它们是 11x17" 并且看起来都非常相似:fitaf570.com/lab/Asian%20BBQ%20Glazed%20Wild%20Salmon/…
  • 嘿@KJ - 错过了您回复的电子邮件通知。无论如何,我认为你的方法就是我们的做法。我们的设计师提供fitaf570.com/lab/Asian%20BBQ%20Glazed%20Wild%20Salmon/1.pdf - 然后印刷店老板生成您第一次看到的 5 up 版本。他也使用 InDesign,但由于他使用的是 PDF,我认为它已经是平面的了。至于打印文件的排列,我们在 8 周的轮换中运行 200+ 餐菜单,每周约 35 餐,每餐提供 3 种不同尺寸,因此这是一项非常多样化的打印工作
  • @KJ - 害怕你在最后再次失去我。我们正在使用激光打印机,但除此之外我不确定指导是什么
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多