用于裁剪PDF文件的命令行工具

我正在寻找一个开源命令行工具来裁剪PDF文件,就像我们在Adobe Acrobat Pro中一样。 我已经尝试过PdfTk,ImageMagick,PyPDF和GhostScript – 到目前为止都没有成功。

我建议你看看PDFcrop 。

如果你想裁剪一个带有左,上,右和下边距为5,10,20和30磅(点)的pdf,然后运行

pdfcrop --margins '5 10 20 30' input.pdf output.pdf 

在终端。 要实际裁剪掉某些东西,请在裁剪参数中使用负值。 例如,

 pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf 

从左,上,右,下50个点(按此顺序)。

如果只运行命令pdfcrop input ,它将输出一个标题为input-crop.pdf且边距为零的文件。 在文档中包含pdf插图时,我发现这非常方便。

裁剪多个文件

不幸的是,pdfcrop当时无法裁剪多个文件。 但是编写一个脚本可以很容易地裁剪脚本所在文件夹中的所有pdf。

创建一个新的空文件,并将其命名为something.sh 。 使用文本编辑器打开它并插入以下内容:

 #!/bin/bash for FILE in ./*.pdf; do pdfcrop "${FILE}" done 

保存并关闭。 然后右键单击该文件,转到“ 属性”>“权限”,然后选中“ 允许将文件作为程序执行 ”字段。 现在关闭对话框。 通过双击并选择Run in Terminal来运行该脚本。 现在,将在文件夹中打印带有后缀-crop的所有pdf的新的零边距裁剪版本。 如果你想要边距或其他东西,你当然可以打开脚本并在pdfcrop之后添加参数。

感谢Rasmus,您可以从texlive-extra-utils包安装pdfcrop:

 sudo apt-get install texlive-extra-utils 

然后使用pdf crop命令裁剪pdf文件:

 pdfcrop input.pdf output.pdf 

使用--help来查看更多令人惊奇的参数,比如--margins

 pdfcrop --margins 5 input.pdf output.pdf 

从页面的每一侧收集5 bp的pdf

您也可以使用Ghostscript简化PDF文件。 我写了一个小脚本来简化过程(灵感来自这个答案 ):

 #!/bin/bash if [ $# -lt 5 ] then echo "Usage: `basename $0`     " echo "Notes:" echo " - all coordinates are absolute; no calculation of width/height necessary" echo " - use 'gv' to determine the coordinates" exit 65 fi file="$1" xmin="$2" xmax="$3" ymin="$4" ymax="$5" base="${file%.*}" outfile="${base}_cropped.pdf" echo "writing to: $outfile" gs \ -o $outfile \ -sDEVICE=pdfwrite \ -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \ -f $file 

为了确定裁剪的坐标,我使用gv ,它使用与Ghostscript相同的单位打印鼠标光标的坐标。 例如,在这里我确定x / y的最小坐标(左上角的值):

crop1

现在最大坐标:

crop2

最后,我运行脚本pdf_crop_by_coordinates.sh test.pdf 45 429 38 419生成一个test_cropped.pdf ,它看起来像这样:

结果

我不知道,Ghostscript解决方案在质量和正确性方面与pdfcrop相比如何。

当我无法使用pdftk做什么时,我转向的下一个地方是PDFjam ,它是pdfpages LaTeX包的命令行包装器(因此您还需要安装TeX发行版)。 有关如何使用它的帮助,我建议使用常规帮助屏幕:

 pdfjam --help 

由于手册页稀疏,网页集中于示例。

要裁剪PDF,您需要的命令是这样的:

 pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf 

这将输出一个名为input-cropped.pdf的文件。 修剪的顺序应该是left,bottom,right,top,来自graphicx的 \includegraphics

为了了解它与PDFcrop的比较,我最近有理由裁剪一个相当奇特的PDF。 我原来是675 kB,我通过PDFjam裁剪的版本是1.2 MB,而通过PDFcrop裁剪的版本是4.5 MB。 虽然PDFjam和PDFcrop都删除了嵌入的超链接和书签,但带有--keepinfo选项的--keepinfo保留了文档属性(例如标题,作者,主题)。

如果图形工具也很好,我会推荐krop : http : krop

这可能对你有所帮助。
这符合Ubuntu和生活的新版本。 这是Master PDF Editor 。 你可以使用它裁剪,添加一些东西等。

例:
这是之前的事 这是之前的事 这是在ctrl + k之后 在此处输入图像描述

您可以使用此页面中的pypdf脚本 。 但是在这个stackexchange问​​题的答案中,似乎还有很多选择。