我使用佳能掃描器掃描了一些文檔,解析度指定為 300。
我將其保存為 pdf 文件 然後我檢查了 pdf 文件的分辨率,作者:ImageMagick
identify -verbose my.pdf
在它所傳回的輸出中,對於它所說的每一頁
Resolution: 72x72
這不是我之前用掃描器指定的 300。為什麼不一樣呢?注意:如果我將其儲存為 jpg 檔案並且使用 Xerox workCenter,也會出現相同的問題。
當我使用 Adobe Premium Pro 對 pdf 檔案進行 OCR 時,它可以讓我指定將 pdf 檔案縮小採樣到的分辨率,有多個選項(72、300、600)。如果我不希望 OCRed pdf 文件的分辨率低於原始 pdf 文件,我該如何找到 pdf 文件的分辨率,以及在 Adobe Premium Pro 中為 OCR 選擇哪個分辨率選項?
謝謝。
答案1
PDF 是一種向量圖形文件。它可以以任何解析度渲染。
嵌入 PDF 文件中的光柵影像(這是典型的基本掃描文件)通常具有解析度(列印在紙張上時,文件的一英寸有多少個像素)。一個這樣的 PDF 文檔可能有多個這樣的圖像(如果它是多頁文檔,則會有),並且可能具有不同的解析度和方向。
ImageMagick 的報導並非如此identify -v
。 72dpi 是它用於將 PDF 轉換為光柵圖像以報告其像素資訊的分辨率。
你會注意到它實際上運行了:gs ... -r72x72 ...
為此。
pdfimages
可以報告 PDF 文件中的所有光柵影像:
$ pdfimages -list scan.pdf
page num type width height color comp bpc enc interp object ID
---------------------------------------------------------------------
1 0 image 1219 1707 rgb 3 8 jpeg no 8 0
$ qpdf --show-pages --with-images scan.pdf
page 1: 3 0 R
images:
/Im0: 8 0 R, 1219 x 1707
content:
4 0 R
這為您提供了以像素為單位的大小,但不是列印影像的框的大小(inmm
或),因此您無法從中獲得解析度。inch
然而,從物件 ID(8 0
上面)中,您可以找出容器的尺寸:
$ mutool show scan.pdf grep | grep 'Im0 8 0'
scan.pdf:3: <</Contents 4 0 R/CropBox[0 0 595 842]/MediaBox[0 0 595 842]/Parent 2 0 R/Resources<</XObject<</Im0 8 0 R>>/ProcSet 6 0 R>>/Thumb 11 0 R/Type/Page>>
因此,在這裡,我們知道圖像是在 595x842 pt(一個點為 1/72 英寸)上渲染的。
因此我們可以得到 x 和 y 解析度:
$ echo "$((1219 * 72 / 595))dpi" "$((1707 * 72 / 842))dpi"
147dpi 145dpi
請注意,當嵌入為 JPG 時,影像可能具有指定解析度的 EXIF 標頭。
您可以提取圖像來找出答案:
$ exiftool -XResolution -YResolution <(qpdf --show-object=8 --raw-stream-data scan.pdf)
X Resolution : 72
Y Resolution : 72
但在這裡它們並不匹配。
您也可以提取影像並將pdfimages
其傳遞給 OCR,這樣在將其自身轉換為光柵影像之前就不必決定解析度。