【转】pdf文件自动切白边

pdf文件自动剪裁(自动切白边)

FROM:http://www.ai7.org/wp/html/754.html

下面假设原文件(也就是打算切白边的文件)叫abc.pdf

  1. pdfcrop abc.pdf,默认会生成abc-crop.pdf文件,这个已经是切掉白边的了,要是你不嫌它大(或者它确实不大)的话,就完成了。
  2. 用阅读器(如evince)打开abc-crop.pdf,并通过CUPS打印到文件,打印时注意关闭所有和页面缩放有关的命令,并选中“使用文档的页面尺寸作为页面尺寸”。打印,完成。

说明:

  1. pdfcrop其实是TeXLive自带的。本质上是一个perl脚本。
  2. pdfcrop要调用gs(ghostscript)确定每页的白边大小。对于空白页,会报错,忽略即可。
  3. pdfcrop还可以在切的时候留若干像素,具体请–help。
  4. pdfcrop要调用pdftex以生成切白边后的文件。
  5. pdfcrop本质上(猜想,没有阅读源码)是先将abc.pdf展开成单页的pdf,调用gs切白边,再用tex文件直接调用pdf页面,最后用pdftex生成输出。
  6. pdfcrop直接生成的文件一般是原文件的20倍以上(本人测试的几个文件均是如此),虚拟打印到新的文件后,基本可以恢复到与原文件同样数量级的尺寸。
  7. 测试都是使用的内嵌字体的中英文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

posted on 2016-06-16 20:28  cslxiao  阅读(5614)  评论(0编辑  收藏  举报

导航