可能用到的环境、工具: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。扫描版的没试,估计够呛。

5月27日更新:
使用这个脚本PDF压缩脚本-Compress PDF,代替上面的第2步。简单,效果不错。