为了使用 Scan Tailor 处理 pdf(为了删除拍摄的 pdf 页面的背景,或分割 pdf 页面),因为该程序需要输入图像 - 它无法输入 pdf 本身 - 我使用了类似的命令pdftoppm MY_PDF NAME_OF_IMAGE -png
来处理低质量的 pdf,并且生成的图像比原始 pdf 更差。
但用pdfimages
工具得出的poppler-utils
结果和原来一样好。
如果使用了不同的变量-png
(或者没有使用变量且输出为ppm
),则该值保持不变。
我认为从现在开始pdfimages
对于我的目的来说这是一个更好的解决方案,但后来我注意到对于许多其他 pdf 文件来说该命令根本不好,因为它给出了图像或文本的片段,而其中pdftoppm
给出了预期的正常文本。
如果从 pdf 中提取并pdfimages
在 Dolphin 中查看,则会出现不良图像:
如果从同一 pdf 中提取并pdftoppm
在 Dolphin 中查看,则正确的图像:
为什么会有这些差异?
答案1
差异源于工具的用途。一旦您意识到 PDF 是一种灵活的文件格式,这一点就会变得显而易见。它可以包含文本、矢量图形和光栅图像(此列表并不详尽)。您可能会将其视为“带有布局信息的 zip”(总体简化)。
pdftoppm
将“渲染”或“光栅化”整个 PDF。所有文本和图形都将成为一张光栅化输出图像。
由于嵌入的光栅图像的像素很少与输出“画布”的像素对齐,因此会发生插值并且质量下降。这可以通过显着提高输出分辨率(选项-r
)来抵消。当然,这意味着文件大小也会增加。pdfimages
将从 PDF 文件中提取光栅图像。文本或矢量图形将被忽略。
由于光栅图像是按原样提取的,因此保留了原始质量,但有关布局的信息丢失了。
如果您的输入 PDF 仅包含一张光栅图像而没有其他内容,则输出可能看起来相似。
在您的示例中,复印机的扫描功能尝试识别文本块以高质量存储它们。文档的其余部分(例如白色背景)以低质量存储以节省存储空间。正如您所发现的,这可能对某人有利,也可能不利。