我想对现有的PDF文件进行一些基本的编辑。进一步来说:
- 添加章节/书签
- 更改页码
但是,我找不到任何可以提供此功能的工具,GUI或命令行。有开放的替代工具吗?
我想对现有的PDF文件进行一些基本的编辑。进一步来说:
但是,我找不到任何可以提供此功能的工具,GUI或命令行。有开放的替代工具吗?
Answers:
我主要使用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文件做很多事情。
mbPDFasm
显然也可以使用书签进行处理,但我从未使用过:thierry.schmit.free.fr/spip/spip.php?article15&lang=en
jPDFBookmarks
:flavianopetrocchi.blogspot.com/2009/03/...
我知道两个在Linux下处理PDF的程序:
PDEedit “ PDFedit是根据GNU GPL版本2发行的免费开源pdf编辑器和用于处理PDF文档的库。它包括基于xpdf,GUI,命令行工具集和pdf编辑器的PDF操纵库。”
和 pdftk “如果PDF是电子纸,则pdftk是电子订书钉去除器,打孔器,活页夹,秘密解码器环和X射线玻璃。Pdftk是处理PDF文档日常工作的简单工具。 ”
我发现将页码添加到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文件(如果已经存在,则将其覆盖!)。
带有pdfpages
和bookmark
软件包的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
用于openoffice的pdfimport是编辑PDF文档并重新导出为PDF或保存为另一种格式的好选择。可以使用OpenOffice Draw编辑导入的PDF。