关闭

发布几个PDF小工具

36277人阅读 评论(2) 收藏 举报
分类:

《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。

5
0

猜你在找
深度学习基础与TensorFlow实践
【在线峰会】前端开发重点难点技术剖析与创新实践
【在线峰会】一天掌握物联网全栈开发之道
【在线峰会】如何高质高效的进行Android技术开发
机器学习40天精英计划
Python数据挖掘与分析速成班
微信小程序开发实战
JFinal极速开发企业实战
备战2017软考 系统集成项目管理工程师 学习套餐
Python大型网络爬虫项目开发实战(全套)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3177006次
    • 积分:24189
    • 等级:
    • 排名:第241名
    • 原创:144篇
    • 转载:3篇
    • 译文:2篇
    • 评论:3297条
    公告
    本人博客的文章均为原创作品,除非另有声明。个人转载或引用时请保留本人的署名及博客网址,商业转载请事先联系。我不使用即时聊天工具。也请不要用 CSDN 站内信、私信、短消息或者留言功能跟我联系。我的 gmail 用户名是 giantchen,微博 http://weibo.com/giantchen。
    陈硕的微博
    最新评论
    g