cwd*_*cwd 69 imagemagick image-manipulation
有很多关于如何将 PDF 文件转换为 PNG 图像的问题,但我正在寻找一个漂亮清晰的 PNG 文件,并且基本上将其包装或嵌入到 PDF 文件中,而不会让它看起来模糊或模糊。
我意识到安装了 imagemagic 我可以做一个简单的转换,比如:
convert sample.png sample.pdf
Run Code Online (Sandbox Code Playgroud)
我还尝试了很多开关来设置深度和质量设置:
convert -quality 100 sample.png sample.pdf
Run Code Online (Sandbox Code Playgroud)
然而,PDF 仍然看起来模糊/模糊。
这是一个示例图像:
http://img406.imageshack.us/img406/6461/picture3mu.png
作为 png,它清脆干净。当我将其转换为 PDF 时,即使大小相同,它看起来也很模糊:
图片4.png http://img803.imageshack.us/img803/9969/picture4at.png
如何将 PNG 高质量转换为 PDF?
Bri*_*n Z 30
从 .pdf 文件中获得好的 pdf 输出可能非常复杂convert
。试试吧img2pdf
。从自述文件:
将图像无损转换为 PDF,无需对 JPEG 和 JPEG2000 文件进行不必要的重新编码。因此,没有质量损失,也没有不必要的大输出文件。
澄清一下:PDF 可以嵌入无损 JPEG 2000 图像(大多数读者似乎都支持它们)。所以这个转换是完全无损的:
convert sample.png -quality 0 sample.jp2
img2pdf -o sample.pdf sample.jp2
Run Code Online (Sandbox Code Playgroud)
(假设 JP2 代表当然可用:检查identify -list format | grep JP2
。)
上面的 Brian Z 提供了以下内容,这是将 png 放入 pdf 的正确、完全可逆和无损(假设转换步骤实际上是无损的,我认为这是或至少应该是)方法。您需要从 png 转换为无损 jp2 以符合 PDF 结构/阅读器(我认为)。
$ convert sample.png -quality 0 sample.jp2
$ img2pdf -o sample.pdf sample.jp2
Run Code Online (Sandbox Code Playgroud)
但是值得注意的是,您可以将 .png 文件本身直接提供给 img2pdf,例如:
$ img2pdf -o sample.pdf sample-page1.png <sample-page2.png ...>
Run Code Online (Sandbox Code Playgroud)
这将生成最小的 pdf 文件,并将 png 的原始十六进制无损地插入到 pdf 中的对象中*。
*缺点是,与使用 jp2 不同,此过程不可逆。页眉/页脚和块页眉/页脚数据已从插入的 png 中剥离(这实际上使文件更小!),仅留下原始图片数据(已删除的元数据已集成到 pdf 结构中),大概是为了“破解”pdf以显示技术上不符合容器的原始png。它在 Firefox 中显示良好,并且可能在所有现代阅读器中显示良好,但如果 png 与容器不兼容,那么严格的阅读器可能无法呈现原始 png 数据(因为他们不应该期望它/正确处理它)。
在这里你可以找到一个非常原始的 bash 脚本,它对我有用,可以提取和重建 png 文件,其哈希值与用于输入到 pdf 的哈希值匹配。https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF