我想使用.pdf 将 PDF 转换为 PNG 图像convert
。图像必须符合 1920x1080 的比例,具有 ?x1080 的比例,并且具有最佳质量。
以下是我可以与 convert 一起使用的许多选项: https ://imagemagick.org/script/command-line-options.php#append
- 首先我尝试了以下命令行:
convert my.pdf -geometry 1920x1080 -size 1920x1080 -density 1920x1080 my_resized_pdf.png
该命令的结果为我提供了具有良好几何形状 (763x1080) 的图像,但我不想获得低质量。
- 我使用没有几何参数的转换命令行,如下所示:
convert my.pdf -size 1920x1080 -density 1920x1080 my_resized_pdf.png
结果的质量正是我想要的,但分辨率不是 1920x1080 比例,而是 842x595。它不完全适合 1920x1080 比例的高度。
是否可以从 PDF 获得具有 ?x1080 比率和 100% 质量的 PNG 图像?还是 842x595 是获得 100% 质量图像的最大比例?我应该将 DPI 选项设置为convert
吗?
这涉及一些试验和错误,最后,您可能认为哪个结果是“最佳结果”是有争议的。所以请允许我给出一些通用的建议:
使用该
-flatten
选项摆脱透明背景。透明度使得很难判断结果的实际质量。如果您需要最终图像中的透明度,您可以-flatten
在确定质量后移除。使用类似的东西
-density 300
来获得高 DPI 结果。主要问题convert
是它默认使用非常低的密度(72 DPI)。此参数必须在输入文件之前指定。缩小高 DPI 图像可能会导致额外的模糊,因此也许计算正确的 DPI 值以达到所需的分辨率是要走的路:
我不确定是否有办法
convert
自行确定“理想”DPI 值。如果您将此问题带到 ImageMagick IRC 频道或论坛,我相信您会得到更多建议。如果您提供指向您正在使用的 PDF 文件的链接,它会有所帮助。;)
您还可以通过其他方式提高质量,例如通过修剪空白边框。如果页面的一半是白色的,您将失去很多分辨率。甚至有一些解决方案可以重新包装 PDF 文本以充分利用可用的屏幕空间(例如
k2pdfopt
)。最后,也尝试其他程序。这是一个见仁见智的问题,但我更喜欢直接使用 Inkscape 或 GhostScript。ImageMagick 将字符“粘合在一起”,Inkscape 具有更平衡的结果,而 GhostScript 允许您渲染无模糊的纯像素图像(如果您喜欢 -
pngalpha
用于模糊版本,这实际上与 相同convert
)。图像魔术:
墨水景观:
鬼脚本:
尝试:
如果您的 pdf 有 10 页,您将获得 10 个文件 out-1.png ... out-10.png
请忽略这个答案:虽然对调整光栅文件大小很有用,但它会为 PDF 文件产生非常模糊的结果(低 DPI 放大)。