掃描的 pdf 檔案的解析度是多少?

掃描的 pdf 檔案的解析度是多少?
  1. 我使用佳能掃描器掃描了一些文檔,解析度指定為 300。

    我將其保存為 pdf 文件 然後我檢查了 pdf 文件的分辨率,作者:ImageMagick

    identify -verbose my.pdf
    

    在它所傳回的輸出中,對於它所說的每一頁

    Resolution: 72x72
    

    這不是我之前用掃描器指定的 300。為什麼不一樣呢?注意:如果我將其儲存為 jpg 檔案並且使用 Xerox workCenter,也會出現相同的問題。

  2. 當我使用 Adob​​e Premium Pro 對 pdf 檔案進行 OCR 時,它可以讓我指定將 pdf 檔案縮小採樣到的分辨率,有多個選項(72、300、600)。如果我不希望 OCRed pdf 文件的分辨率低於原始 pdf 文件,我該如何找到 pdf 文件的分辨率,以及在 Adob​​e 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,這樣在將其自身轉換為光柵影像之前就不必決定解析度。

相關內容