2012-10-11 24 views
1

有PDF這樣的:我如何正確作物PDF不均勻的文字邊緣

enter image description here

,所有的利潤相對於文本內容都在每頁的基礎不同。

是否有任何工具可以糾正這個問題?

我知道掃描裁縫可以對位做到這一點,但是這是PDF只有文字層,所以我沒有解決方案,在任何階段


更新包括位圖後:

好吧,對我來說,沒有必要嘗試在Windows上運行PDFCrop,因爲主要功能是由ghostscript提供的。這個命令(從pdfcrop perl腳本拍攝):

gswin32c.exe -dSAFER -dNOPAUSE -dBATCH -q -r72 -sDEVICE=bbox -f input.pdf 2> bbox.txt

產生bbox.txt文件,用文本內容的尺寸,因爲如果沒有邊距(邊框)。它看起來像這樣:

%%BoundingBox: 91 259 474 757 
%%HiResBoundingBox: 91.000000 259.000000 474.000000 757.000000 
%%BoundingBox: 85 224 470 768 
%%HiResBoundingBox: 85.000000 224.000000 469.375000 768.000000 
%%BoundingBox: 102 217 489 768 
%%HiResBoundingBox: 102.000000 217.000000 488.457031 768.000000 
... 

其中第一到數字是左下角的x,y的值和剩餘的兩個和右上,從左下邊緣測量(像素/點)。

這可以通過選擇用戶的語言閱讀,並根據需要再bboxes糾正,並再次傳遞到Ghostscript的作爲,即此處引用:Cropping a PDF using Ghostscript 9.01

+1

您是否試過PDFCrop?它會自動裁剪圖形和文本週圍的所有空白區域。 – Robert

回答

1

如果你確信只有文本涉及(而不是與文字圖像繪製在其上或繪製符號的路徑中),可以使用解析器包功能,使用iText(或者很可能還有一些使用iTextSharp的.NET語言),以Java的方式輕鬆構建這樣的工具。

本書的iText in Action第2版的第15.3.4節展示瞭如何查找文本邊距,示例代碼可以在SourceForge iText SVN存儲庫的ShowTextMargins.java中找到。

通過操作各個頁面的MediaBox條目,您可以根據需要調整邊距。

+0

感謝您的建議,但java或.net不是我的東西。 Robert對pdfcrop的建議似乎很有趣,因爲perl腳本使用了ghostscript,我也使用它,所以我會檢查一下,並且可能推斷出一些有用的東西,因爲在Windows上運行perl與PDFedit進行通信在我看來看起來不太有希望 – theta