我有一个 PDF 文档,显然是用 LaTeX 生成的,其中有较宽的白色边距和裁切标记。我想删除这些边距和相应的裁切标记。有没有工具可以自动执行此操作?
编辑
Werner 建议使用pdfpages
包将 PDF 页面包含在 LaTeX 文档中。实际上我应该只包含我想要裁剪的 PDF 页面,然后使用选项来修剪它。我正在等待帮助来识别最合适的选项。
答案1
这pdfcrop该实用程序用于从 PDF 中裁剪白色边框。
pdfcrop in.pdf out.pdf
如果您想删除更多内容,以便裁剪标记也被删除,请使用该--margins
选项。提供负边距值将导致部分内容被裁剪。边距值的单位是 bp。使用负值可以删除刻度标记,而不会删除其他内容。
pdfcrop --margins -10 in.pdf out.pdf
编辑使用OP的示例PDF如下...
您的示例 PDF 文件对我有用。我使用了以下命令。
pdfcrop --margins -10 --verbose matC.pdf matC_cropped.pdf
这是您的原始文件
这是裁剪后的文件
详细日志pdfcrop
如下
PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek.
* PDF header: %PDF-1.5
* Running ghostscript for BoundingBox calculation ...
GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
%%BoundingBox: 3 3 205 205
* Page 1: 3 3 205 205
%%HiResBoundingBox: 3.667289 3.061336 204.622728 204.016705
* Running pdfTeX ...
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9 64-bit)
entering extended mode
(tmp-pdfcrop-3248.tex [1 <./matC.pdf>] )
Output written on tmp-pdfcrop-3248.pdf (1 page, 24335 bytes).
Transcript written on tmp-pdfcrop-3248.log.
==> 1 page written on `matC_cropped.pdf'.
如您所见,pdfcrop
使用ghostscript
。也许您的ghostscript
有问题。
答案2
fitpaper=true
我最终使用该选项(手动设置选项)解决了该问题trim
。
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages={2-32},trim=2.9cm 3.5cm 2.9cm 3.5cm,fitpaper=true]{Chapter05.pdf}
\end{document}
编辑:如果我考虑非 LaTeX 解决方案,我就会想到 briss。
答案3
一个选项就是对文档中所有带有裁切标记的页面进行迭代,然后对每一页进行trim
处理clip
以删除裁切标记。
第一步是获取要包含的页面数量。有关详细信息,请参阅获取外部 PDF 的页数。
其次,我们按顺序迭代页面数(使用multido
)在每个页面上,我们创建一个新的一片空白页面在您的文档中(使用\newpage \thispagestyle{empty} \mbox{}
),并使用从 PDF 插入一页作为覆盖eso-pic
)。覆盖层放置在F
矿石中G
该特定页面的仅有的(由于),我们从原始页面图像中*
删除了(med)适当的水平和垂直偏移。trim
\documentclass{article}
\usepackage{multido,geometry,eso-pic,graphicx}
\usepackage{pdfpages}
\geometry{paper=a4paper}
\begin{document}
\includepdf{provacrop}% For reference
% https://tex.stackexchange.com/q/198091/5764
\pdfximage{provacrop.pdf}%
\edef\numberofpages{\the\pdflastximagepages}%
\multido{\i=1+1}{\numberofpages}{%
\newpage% Start a new page
\thispagestyle{empty}% No header/footer
\mbox{}% Just to put something on this blank page
\edef\x{%
\noexpand\AddToShipoutPictureFG*{%
\noexpand\AtPageLowerLeft{%
\noexpand\hspace{20mm}% Horizontal shift
\noexpand\raisebox{25mm}{% Vertical shift
\noexpand\includegraphics[trim=20mm 25mm 20mm 25mm,clip,page=\i]{provacrop}}%
}%
}}\x%
}
\end{document}
上面我水平修剪了 20 毫米,垂直修剪了 25 毫米,只是为了展示它如何影响输出。您可以尝试这些长度,直到裁剪标记消失。
使用\edef\x{..}\x
是为了确保正确选择page=\i
-\i
必须完全扩展才能被正确处理\includegraphics
。