標籤:
pdf檔案自動剪裁(自動切白邊)
FROM:http://www.ai7.org/wp/html/754.html
可能用到的環境、工具:Ubuntu 10.04+TeXLive 2008+pdfcrop+CUPS列印驅動,用Windows的兄弟就不用看了,這些工具理論上在Windows下也有,但是還要另外裝不少東西。
下面假設原檔案(也就是打算切白邊的檔案)叫abc.pdf
- pdfcrop abc.pdf,預設會產生abc-crop.pdf檔案,這個已經是切掉白邊的了,要是你不嫌它大(或者它確實不大)的話,就完成了。
- 用閱讀器(如evince)開啟abc-crop.pdf,並通過CUPS列印到檔案,列印時注意關閉所有和頁面縮放有關的命令,並選中“使用文檔的頁面尺寸作為頁面尺寸”。列印,完成。
說明:
- pdfcrop其實是TeXLive內建的。本質上是一個perl指令碼。
- pdfcrop要調用gs(ghostscript)確定每頁的白邊大小。對於空白頁,會報錯,忽略即可。
- pdfcrop還可以在切的時候留若干像素,具體請–help。
- pdfcrop要調用pdftex以產生切白邊後的檔案。
- pdfcrop本質上(猜想,沒有閱讀源碼)是先將abc.pdf展開成單頁的pdf,調用gs切白邊,再用tex檔案直接調用pdf頁面,最後用pdftex產生輸出。
- pdfcrop直接產生的檔案一般是原檔案的20倍以上(本人測試的幾個檔案均是如此),虛擬列印到新的檔案後,基本可以恢複到與原檔案同樣數量級的尺寸。
- 測試都是使用的內嵌字型的中英文PDF。掃描版的沒試,估計夠嗆。
附一個類似的eps版工具
首先用下面的命令來去除白邊。因為是程式來做的,去除白邊的效果甚至比人自己做好:
epstool --copy --bbox input_file.eps input_file_temp.eps
第二步也是最後一步,將eps映像轉成pdf,也只需要一行命令
epstopdf --hires --outfile=output.pdf input_file_temp.eps
這樣就完成了eps到pdf的轉換了。
上述的操作流程可以寫成一個指令碼
epstool --copy --bbox $1 my_epstopdf_temp.eps
epstopdf --hires --outfile=$2 my_epstopdf_temp.eps
rm my_epstopdf_temp.eps
【轉】pdf檔案自動切白邊