簡體   English   中英

ghostscript縮小pdf不再起作用

[英]ghostscript shrinking pdf doesn't work anymore

這里的第一個問題。

因此,我使用ghostscript命令縮小了pdf,從而獲得了不錯的效果(尺寸減小了30-40%)。 但是,上周的一天,它停止縮小它們,而是給我返回了一個pdf甚至更大的pdf文件(大約1%或更少)。 因此,我不知道發生了什么事,因為該命令曾經可以正常工作,並且我能夠輕松縮小一些pdf ...

我會注意到,在我的pdf上使用gs時,它總是返回有關GlyphLessFont中缺少的某些字形的錯誤,但我不認為這與我的問題有關(盡管如果您可以將我重定向到修復無字形的字體,將不勝感激) 。

這是我使用的命令:

`gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf`

這也是一個正確縮小的pdf示例(原始文件大小為4.7mo /縮小后的版本為2.9mo) https://nofile.io/f/39Skta4n25R/bulletin1_ocr.pdf

編輯:適用於以上文件的簡易版本: https : //nofile.io/f/QOKfG34d5Cg/bulletin1_light.pdf

這是另一個無效的pdf的輸入和輸出文件(輸入) https://nofile.io/f/sXsU0Mcv35A/bulletin15_ocr.pdf (通過上述gs命令輸出) https://nofile.io/f/ STdJYqqt6Fq / out.pdf

您會注意到輸入和輸出文件均為27.6mo,而第一個文件減少了。

我還要補充一點,我已經使用pdfocr和tesseract引擎在這些pdf上執行了OCR,這就是為什么我沒有嘗試轉換為png來減小大小的原因,我需要額外的OCR層,以便我們可以發布這些文件我們的網站,希望我們的網站更輕巧。

最終信息:ghostscript -v為9.10(2013-08-30),tesseract為3.03,leptonica為1.70,pdfocr為0.1.4

希望你們能有所幫助!

EDIT2:在等待答案的同時,我繼續掃描和查找文檔,似乎在將pdf通過pdfocr傳遞之后,它像以前的ghostscript一樣被縮小了。 因此,我想知道腳本pdfocr是否對ghostscript進行了縮小,因為我知道它會在OCR化過程中將其調用用於其他任務。

PDF的介質尺寸為35.44 x 50.11英寸,真的是原始尺寸嗎?

考慮到您似乎通常使用OCR,我一般認為您的PDF文件僅包含非常大的圖像。 在這種情況下,對文件大小的主要影響將來自對圖像進行下采樣。 如果您查看文檔,您會發現/ screen設置將圖像降采樣為72 dpi,閾值為1.5(因此,超過72 * 1.5 = 107 dpi的圖像將降采樣為72,沒有其他值被認為不值得)

您的PDF文件的介質大小為35.44 x 50.11英寸。 它的文件相當大(26頁),因此我將只考慮第1頁。在此頁面上,Tesseract在其中放置了一張圖像和一堆不可見的文本。 第1頁上的圖像是尺寸為2481x3508的8位RGB圖像,它覆蓋了整個頁面。

因此該圖像的分辨率為2481 / 35.44 x 3500 / 50.11 = 70.00 x 69.84

由於該值小於72 dpi,因此pdfwrite不會對其進行降采樣。

如果您的媒體尺寸為8.5 x 11英寸,則圖像的有效分辨率為2481 / 8.5 x 2500/11 = 291.8 x 318.18,因此將降低采樣率約4倍。

但是.....對我來說,您的“有效” PDF文件還具有很大的介質尺寸,並且圖像也已經低於下采樣分辨率。 當我使用命令行運行該文件時,輸出文件的大小與輸入文件的大小基本相同。

因此,我茫然地看到您如何體驗減小的文件大小。 也許您也可以發布縮小的文件。

編輯

因此,通過Ghostscript后文件較小的原因是,絕大多數內容是掃描的頁面。 這些以DCT編碼圖像(JPEG)的形式存儲在PDF文件中。

圖像的分辨率足夠低(請參見上文),因此無法進行降采樣。 但是,舊版本Ghostscript的工作方式是圖像數據始終在讀取時解壓縮,然后在寫入時重新壓縮。

由於JPEG是有損圖像格式,因此這意味着解壓縮和重新壓縮的圖像的質量比原始圖像低,並且應用質量損失的方式意味着數據的壓縮效果更好。

因此,對Ghostscript的工作方式進行怪異的處理會導致質量下降,但文件變小。 請注意,對於當前版本的Ghostscript,JPEG數據將原樣傳遞, 除非您的配置要求對其進行采樣或進行顏色轉換。

那么為什么不壓縮其他文件呢? 當然,對於當前的代碼,這當然是我正在使用的代碼,不會,因為圖像不需要下采樣或其他任何操作。

現在,當我在這里使用舊版本的Ghostscript(9.10,之所以選擇它是因為您正在使用的縮小文件正在使用該文件)運行它時,確實可以看到文件大小減小了。 它從26MB減少到15MB。

當我查看您的“不工作”縮減文件時,我看到是由Ghostscript 9.23而非Ghostscript 9.10生成的。

因此,您看到行為上的差異的原因是因為您已升級到更新版本的Ghostscript,它可以更好地保持圖像數據不變。

如果您確實想降低圖像質量,可以設置-dPassThroughJPEGImages=false但是IMO最好獲取原始PDF coreect的介質尺寸(確保頁面不是真的35x50英寸?)或設置ColorImageResolution降低到一個較低的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM