Pdf

將 PDF 轉換為 1920x1080 的圖像

  • October 22, 2018

我想使用.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 -density 100 file.pdf -flatten file100.png
$ file file100.png
file100.png: PNG image data, 827 x 1169, 8-bit colormap, non-interlaced
$ echo $((1080*10000/1169))
9238
$ convert -density 92.38 file.pdf -flatten file9238.png
$ file file9238.png
file9238.png: PNG image data, 764 x 1080, 8-bit colormap, non-interlaced

我不確定是否有辦法convert自行確定“理想”DPI 值。

如果您將此問題帶到 ImageMagick IRC 頻道或論壇,我相信您會得到更多建議。如果您提供指向您正在使用的 PDF 文件的連結,它會有所幫助。;)

您還可以通過其他方式提高質量,例如通過修剪空白邊框。如果頁面的一半是白色的,您將失去很多解析度。甚至有一些解決方案可以重新包裝 PDF 文本以充分利用可用的螢幕空間(例如k2pdfopt)。

最後,也嘗試其他程序。這是一個見仁見智的問題,但我更喜歡直接使用 Inkscape 或 GhostScript。ImageMagick 將字元“粘合在一起”,Inkscape 具有更平衡的結果,而 GhostScript 允許您渲染無模糊的純像素圖像(如果您喜歡 -pngalpha用於模糊版本,這實際上與 相同convert)。

圖像魔術:

ImageMagick

墨水景觀:

墨景

鬼腳本:

gs -r92.38 -sDEVICE=png48 -sOutputFile=ghostscript.png file.pdf

鬼腳本

引用自:https://unix.stackexchange.com/questions/476997