1

我有一个非常具体的要求,我必须自动标记 PDF 文件的每一页(对于传真应用程序),所以这是我所做的过程:

第三步的输出文件“理论上”应与步骤 1 中的输入文件相同(加上上面的标记),但事实并非如此,该文件有点模糊,并且在传真后变得无法阅读,因为模糊了即使您可能看到 input.pdf 和 output.pdf 之间没有区别,像素也不会通过传真线,尝试放大,您会发现文本字符的边缘模糊。

在输入(第 1 步)或输出(第 3 步)中使用的最佳参数是什么?

谢谢 !

4

2 回答 2

5

您正在使用抗锯齿 (TextAlphaBits=4)。这通过在文本边缘的黑色像素之间引入灰色像素来“平滑”文本的边缘。在低分辨率(例如显示器)下,这可以防止文本中出现“锯齿”并提供更易读的结果。在更高的分辨率下,它的价值值得商榷。

传真是 1 位单色介质,因此必须通过抖动重新创建灰度值。正如您所发现的,这在分辨率有限的设备中不是一个好主意,因为它会导致清晰度下降。

我相信,如果您删除 -dTextAlphaBits=4,您会立即看到改进。我还建议您也删除 GraphicsAlphaBits,因为这将对线条产生相同的影响。

如果你认为你仍然想要抗锯齿,你可以尝试降低侵略性,你现在将其设置为 4,尝试将其降低到 2。

关于其他评论;Kurt 非常正确,fourat 也是如此,恐怕 MarcB 弄错了,-r400 设置渲染分辨率,以每英寸点数为单位。如果只给出一个数字,则它同时用于 x 和 y 分辨率。可以使用 Ghostscript 生成固定大小的栅格,但您可以使用 -dFIXEDMEDIA 和 -sPAPERSIZE 开关或 -g 开关,它也会自动设置 FIXEDMEDIA。

虽然我同意 yms 和 Kurt 的观点,即将 PDF 转换为位图格式 (PNG),然后再转换回 PDF导致质量下降,但如果最终的 PDF 仅用于通过传真传输,那没关系。PDF 必须在此过程中的某个时间点呈现为传真分辨率位图,如果在应用图章之前完成,则问题不大。

我不同意这里的 BitBank,将矢量表示转换为位图意味着以特定的分辨率对其进行光栅化。完成此操作后,无法在不损失质量的情况下重新缩放生成的图像,而原始矢量表示可以简单地以不同的分辨率再次渲染。PDF 中的图像是指位图,不能有矢量位图。yms 发布的图片清楚地显示了将矢量表示渲染成图像的效果。

最后一个警告。我不熟悉这里使用的其他工具,但其中两个命令行至少暗示了“调整大小”。如果您“调整”位图的大小,那么该工具很可能会引入您遇到问题的相同种类的人工制品(抗锯齿)。一旦你创建了位图,你根本不应该改变它。首先以正确的大小创建 PNG 非常重要。

最后......

我刚刚检查了您的原始 PDF 文件,发现页面内容已经是图像。不仅是它的 DCT (JPEG) 图像。对于单色图像,JPEG 是一种非常糟糕的格式选择。它是一种有损压缩格式,总是会在图像中引入伪影。如果您在 Acrobat(或类似查看器)中打开原始 PDF 文件并放大,您会看到文本周围有微弱的“光晕”,您还会看到文本已经模糊。

然后渲染图像,很可能以与原始图像分辨率不同的分辨率,同时通过设置 -dGraphicsAlphaBits 引入更多模糊。然后,您对我无法评论的图像数据进行进一步更改。最后,您再次将图像渲染为单色位图。表示灰色像素所需的抖动会导致您的文本不可读。

这里有一些改进的方法: 1)不要像这样将文本转换成图像,它会立即导致质量损失。2) 不要使用 JPEG 压缩单色图像 3) 如果您要处理图像,请不要一直来回转换它们,在完成之前使用原始图像,然后制作 PDF 文件,如果您真的必须。4)如果你真的坚持做这一切,不要通过使用更多的抗锯齿来使问题复杂化。从命令行中删除 -dGraphicsAlphaBits。您也可以删除 -dTextAlphaBits ,因为您的文件不包含文本。请在使用开关之前阅读文档并了解您在做什么。

您应该在这里真正考虑一下您的工作流程。显然我们不知道你在做什么或为什么,所以可能有很好的理由说明某些事情是不可能的,但你应该尽量避免像这样操纵图像。因为这些不是矢量,所以每次您对图像数据进行更改时,您都可能会丢失无法在以后恢复的信息。通过进行许多此类转换(并且您所描绘的工作流程似乎从“原始”图像数据执行多达 5 次转换),您将不可避免地损失质量。

如果可能,将所有内容保留为矢量数据。当无法避免移动到图像数据时,根据需要创建最终使用的图像数据,不要进一步转换它。

于 2012-11-08T08:26:06.170 回答
5

我仔细查看了您提供的文件,请参见此处:

放大位图

因此,mogrify resize 命令的结果已经是第一张图像 (image_raw),在 1062x1375 处相当模糊。虽然第二张图像 (image_stamped) 的模糊度并没有变得更糟,这是第三方工具的结果,但第三张图像(从您的 output.pdf 中提取),即转换命令的结果,更加模糊是由于图形被调整大小(这是你明确告诉它做的事情)。

我不知道您的传真程序在哪种分辨率下工作,但仍然存在更多质量损失,至少由于 24 位颜色到黑白转换。

如果您坚持工作流程(即 pdf->png->stamped png->pdf->fax),您应该

  1. 在初始光栅化中已经使用了您的光栅图像在所有后续步骤(包括传真传输)中将具有的每英寸分辨率,

  2. 避免抗锯齿和使用 alpha 位(参见 KenS 的回答),以及

  3. 将光栅化图像限制为传真传输可用的色彩空间,即很可能是黑白的。

PS正如 KenS 指出的那样,原始 PDF 已经只是图像的容器(开始时有些模糊)。因此,改进工作流程的另一种方法是提取该图像而不是渲染它,标记该原始图像并仅在传真时调整其大小(同样没有抗锯齿)。

在此处输入图像描述

于 2012-11-08T09:43:33.100 回答