Command-Line

pdf轉jpg無質量損失;gscan2pdf

  • May 14, 2020

當我使用將 pdf 文件轉換為一堆 jpg 文件時

convert -quality 100 file.pdf page_%04d.jpg

我有明顯的質量損失。

但是,如果我執行以下操作,則沒有(明顯的)質量損失:

啟動 gscan2pdf,選擇 file-> import(然後選擇 file.pdf)。然後進入gscan2pdf的臨時目錄。有許多 pnm 文件(pdf 文件的每一頁都有一個)。現在我做

 for file in *.pnm; do            
 convert $file $file.jpg done

生成的 jpg 文件(大致)與原始 pdf 的質量相同(這是我想要的)。

現在我的問題是,是否有一種簡單的命令行方法可以將 pdf 文件轉換為一堆 jpg 文件而沒有明顯的質量損失?(上面的解決方案過於復雜和耗時)。

目前尚不清楚您所說的“質量損失”是什麼意思。這可能意味著很多不同的事情。你能張貼一些樣本來說明嗎?也許從質量較差和質量好的版本中刪除相同的部分(作為 PNG 以避免進一步的質量損失)。

也許您需要使用-density以更高的 dpi 進行轉換:

convert -density 300 file.pdf page_%04d.jpg

(您可以在前面添加-units PixelsPerInch-units PixelsPerCentimeter在必要時添加。我的副本預設為 ppi。)

更新: 正如您所指出的,gscan2pdf(您使用它的方式)只是pdfimages(來自poppler)的包裝器。 與將 PDF 作為輸入時pdfimages所做的事情不同。convert

convert獲取 PDF,以某種解析度呈現它,然後使用生成的點陣圖作為源圖像。

pdfimages在 PDF 中查找嵌入的點陣圖圖像並將每個圖像導出到文件中。它只是忽略 PDF 中的任何文本或矢量繪圖命令。

因此,如果您擁有的 PDF 只是一系列點陣圖的包裝器,pdfimages那麼在提取它們方面會做得更好,因為它會以原始大小為您提供原始數據。您可能還想使用 to-j選項pdfimages,因為 PDF 可以包含原始 JPEG 數據。預設情況下,pdfimages將所有內容都轉換為 PNM 格式,並且轉換 JPEG > PPM > JPEG 是一個有損過程。

所以,試試

pdfimages -j file.pdf page

您可能需要也可能不需要使用convertto.jpg步驟(取決於 PDF 使用的點陣圖格式)。

我在自己從一系列 JPEG 圖像中製作的 PDF 上嘗試了這個命令。提取的 JPEG 與源圖像逐字節相同。您無法獲得比這更高的質量。

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