發布幾個PDF小工具


《Linux多線程服務端編程——使用muduo C++網絡庫》這本書是我自己用LaTeX排版的,在排版過程中也積累了一些小工具,今天把其中幾個發布出來。這幾個工具都直接基於開源的 iText 庫,可從 http://itextpdf.com/ 下載。

下載

Groovy 版本位於 https://github.com/chenshuo/typeset/tree/master/tools

Java 版本位於 https://github.com/chenshuo/recipes/tree/master/java/pdf

各個工具的輸出示例位於 http://vdisk.weibo.com/s/kT4fL

剪裁(Crop)

為了充分利用屏幕空間,也便於在電子閱讀器(iPad、Kindle)上閱讀校對書稿,我一般會把PDF剪切為版心大小。例如下面左圖是原始PDF,為紙張大小;右圖是剪切之后的版心。

crop

剪切工具是 crop.groovy,設好CLASSPATH后可直接在命令行運行。其核心是根據版心和紙張尺寸算出左下角和右上角左邊,然后剪切每一頁。這個工具不管PDF的內容,如果需要根據頁面內容剪裁PDF,可以使用Heiko Oberdiek的pdfcrop工具。

http://www.ctan.org/tex-archive/support/pdfcrop

http://code.google.com/p/pdfcrop2/

拼版(two-up)

有時候想在寬屏上同時閱讀左右兩頁的書稿,除了可以用PDF閱讀器本身的多頁顯示功能,我還常常自己做二合一(two-up)。這樣得到的PDF也可以打印出來看,既節約紙張,而且與原稿是1:1大小。生成的PDF效果如下圖。

twoup

二合一工具是twoup.groovy,其核心是算出左右兩頁在合頁中的起始坐標。

小冊子(booklet)

有時候我會把一章的內容打印出來,裝訂成一本小冊子,這樣讀起來有翻書的感覺。為了節約紙張,在打印之前要拼版,這樣一張紙雙面能打印4個頁碼。例如8頁內容可以打印到兩張A4紙上:

booklet

裝訂這種小冊子要用騎縫訂,可用旋轉訂書機(http://www.amazon.cn/dp/B0080AF0FMhttp://product.dangdang.com/product.aspx?product_id=1141537002)。一本小冊子一般應該控制在10頁紙左右,即40個頁碼,再厚就訂不透了。

對比PDF內容(diff)

在書籍出版之后,每次印刷都可能修訂一些頁碼,那么可以用 diffpdf.sh 小工具找出哪些頁面的內容有改動。這個工具的思路很土,就是把PDF渲染為多個PNG文件,然后用diff比較文件是否相同。

另外,SumatraPDF是非常好的PDF閱讀器,它可以在更新PDF文件之后自動刷新內容,不必reload。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM