修改PDF文件


Answers:


19

我主要使用pdftk。但是,还有其他一些要考虑的问题:

pdfsam(PDF拆分和合并):“ pdfsam是旨在处理pdf文件的开源工具(GPL许可)”

PDFJam “shell脚本要多的优秀pdfpages PDF文件包(由Andreas马蒂亚斯)为功能提供了一个简单的界面的小集合pdfLaTeX。” (您也可以直接使用pdfLaTeX。)

jPDFTweak:“ jPDF Tweak是一个Java Swing应用程序,可以组合,拆分,旋转,重新排序,加水印,加密,签名以及其他方式调整PDF文件。”

Inkscape:是一个矢量图形编辑器,既可以将PDF页面导入其本机SVG格式,也可以导出为PDF。

口径:开源电子书管理软件,可以将PDF转换为其他格式,并以其他方式进行操作。随附命令行工具(例如pdfmanipulate)可能会很有用。

Ghostscript当然也可以对PDF文件做很多事情。


我使用pdfjam,但似乎没有一个可以做我明确列出的2件事。
Maciej Piechotka 2010年

2
我误解了这个问题。编辑问题,以明确“章”的含义。我假设您只是想将PDF的一部分插入另一部分。但是,也许您是说pdf书签(即,某些查看者会在侧窗格中看到)?PDFJam可能不会,但是PDFLaTeX的pdfpages软件包以及LaTeX hyperref软件包可以处理这些问题。pdfedit应该能够更改页码。使用pdfLaTeX / pdfpages,您可以裁剪页面的底部并添加新的页面。BRISS也可以裁剪页眉/页脚,但是您必须将它们添加回去。
frabjous

哦,mbPDFasm显然也可以使用书签进行处理,但我从未使用过:thierry.schmit.free.fr/spip/spip.php?article15&lang=en
frabjous 2010年


12

我知道两个在Linux下处理PDF的程序:

PDEedit “ PDFedit是根据GNU GPL版本2发行的免费开源p​​df编辑器和用于处理PDF文档的库。它包括基于xpdf,GUI,命令行工具集和pdf编辑器的PDF操纵库。”

pdftk “如果PDF是电子纸,则pdftk是电子订书钉去除器,打孔器,活页夹,秘密解码器环和X射线玻璃。Pdftk是处理PDF文档日常工作的简单工具。 ”


pdfedit:我没有qt3,我无法安装它(不在portage中),也无法使其与qt4一起编译(即使使用qt3support)。
Maciej Piechotka 2010年

4

我发现将页码添加到PDF的唯一方法是使用LaTeX:

创建一个文件/usr/local/bin/add-page-numbers.tex

\documentclass[8pt]{article}
\usepackage[final]{pdfpages}
\usepackage{fancyhdr}

\topmargin 70pt
\oddsidemargin 150pt

\pagestyle{fancy}
\rfoot{\Large\thepage}
\cfoot{}
\renewcommand {\headrulewidth}{0pt}
\renewcommand {\footrulewidth}{0pt}

\begin{document}
\includepdfset{pagecommand=\thispagestyle{fancy}}
\includepdf[pages=-]{input.pdf}
\end{document}

还有一个文件/ usr / local / bin / pdf-numbers

#!/bin/bash
name="${1%\.pdf}-numbers"
wd="$(pwd)"
dir=/tmp/pdf-numbers
mkdir -p "$dir"
cp "$1" "$dir/input.pdf"
cd "$dir"
pdflatex --jobname "$name" /usr/local/bin/add-page-numbers.tex > /dev/null
mv "$name.pdf" "$wd"
rm -r "$dir"

使后一个文件可执行,并使用

    pdf-numbers example.pdf

它将创建一个名为example-numbers.pdf的pdf文件(如果已经存在,则将其覆盖!)。


工作得很好。不完美之处在于绝对的道路,但这不是我无法解决的。但是,您能否详细说明一下您如何添加这些数字以及如何更改数字的位置?
克拉韦米尔,2015年

3

带有pdfpagesbookmark软件包的LaTeX 可以完成大多数这些事情。

通过创建一个新tex文档并通过包含原始PDF文档(或其一部分)来进行工作\includepdf(请参见pdfpages手册)。

您也可以更改页码,例如

\pagenumbering{roman}
\setcounter{page}{1}
% include pdf pages that should have roman numbering (the front matter)
\pagenumbering{arabic} % switch to arabic numbering
\setcounter{page}{1} % reset page counter
% include pdf pages that should have arabic numbering (the main matter)

这些“逻辑”页码仅仅是大多数PDF阅读器可用于导航到特定页面的标签。对于较低级别的交互,仍然还有从1开始连续运行的基础“物理”页码(请参见下文)。

在为现有的pdf页面添加正确的逻辑页面编号后,您可以使用以下\bookmark命令设置PDF书签(“大纲”)。基本语法是

\bookmark[page=<pagenumber>,level=<level>]{<title>}

其中<pagenumber>是目标页面的页码。请注意,这些不是先前定义的“逻辑”页码,而是从pdf开头开始从1开始连续运行的内部页码。嵌套书签是通过指定来完成的<level>,其中0是顶层。这<title>是要在PDF阅读器的大纲中显示的文本。有关详细信息,请参见书签手册

编译tex文件将生成带有所需页码和书签的新PDF。

有关所有这些如何组合的完整示例,请参见https://michaelgoerz.net/notes/pdf-bookmarks-with-latex.html




2

用于openoffice的pdfimport是编辑PDF文档并重新导出为PDF或保存为另一种格式的好选择。可以使用OpenOffice Draw编辑导入的PDF。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.