使用免费软件将文本注释和图像添加到PDF文件


17

我最感兴趣的是在预定位置用文本注释PDF文件。GUI和命令行实用程序都可以,但是请仅提供免费软件解决方案。但是,为了完整起见,我添加了图像。

为了清楚起见,注释必须是PDF文件的一部分,否则它没有用。

Ask Ubuntu上有两个类似的问题,但是都已经有两年了。这些是如何向PDF添加文本和图像(例如,签名)?以及如何将图片编辑为现有的PDF文件?

我已经尝试过Xournal,它确实可以工作。但是,我认为一些有关如何执行此操作的教程会很好,因此您想添加一个有关如何使用Xournal完成这些任务的小教程,请添加答案。

我也尝试过updf,它对我不起作用,尽管这个答案这个例子都说可以。我使用updf PPA的源在Debian Wheezy上重建了软件包(纯Python)。似乎很原始,“另存为”对话框甚至没有保存按钮。如果其他人有不同的经历,请发表。

对于每个答案,请提供一个简短的教程,其中包括有关您如何完成此任务的屏幕截图(如果适用)。


libreoffice怎么了?
goldilocks 2014年

@goldilocks我没有用过。如果它适合您,请写一个答案。
Faheem Mitha 2014年

Libreoffice 3.5.4尝试在此处以文本形式打开PDF文件。也许我做错了。
Faheem Mitha 2014年

我在使用libreoffice的工作中成功地编辑了PDF,以便在某些文档的ab / w状态图中将颜色添加到不同状态,结果给我留下了深刻的印象(几乎看不到任何区别,除了线条粗细略有不同之外)。几个地方)。
2014年

@hlovdal您能提供一些细节吗?
Faheem Mitha 2014年

Answers:


12

PDF文件似乎在LibreOffice Draw中打开。除了像这样打开文件外,我没有做其他特别的事情:

$ libreoffice carcut_01.pdf

进入LibreOffice Draw之后,我只是将PDF注释为普通文档/图像。完成后,我单击Draw工具栏中的PDF图标将文件导出为新的PDF文件。

    抽奖

这是我努力的结果。

    xpdf的ss

但是LibreOffice对我不起作用吗?

如果您遇到Draw无法执行此操作的问题(我使用的是LibreOffice版本):

  • 版本:4.1.4.2
  • 内部版本号:4.1.4.2-4.fc19

**注意:*您可能会缺少此软件包,它是LibreOffice的一部分:

$ rpm -aq|grep "libre.*pdf"
libreoffice-pdfimport-4.1.4.2-4.fc19.x86_64

这就是该软件包在基于Red Hat的发行版(如Fedora)上的外观。我认为在Debian / Ubuntu上可能有一个类似的名称包libreoffice-pdfimport

备择方案?

您可以尝试Okular

Okular允许您查看和注释文档。在Okular中创建的注释会自动为每个用户保存在内部本地数据文件夹中。Okular不会隐式更改它打开的任何文档。

屏幕截图

   秋葵

还有什么?

正如@Terdon的答案所示,您还可以使用GIMP以及其他许多工具。@Terdon也很友善地将此链接发布到我们的聊天室中,该聊天室提供了用于注释和查看PDF的其他工具列表


1
专门针对Debian的注释:我在Wheezy上,但目前使用libreoffice backport 1:4.1.4-2。我安装了libreoffice,但是必须添加libreoffice-pdfimport,因为它没有被引入libreoffice。没有它就行不通。单击底部栏上的T插入文本。此处尝试覆盖现有的PDF失败。此外,与原始的-LaTeX输出生成的PDF相比,最终的输出看起来很差。这可能(并且可能确实)适用于繁忙的Libreoffice。我没有麻烦检查。
Faheem Mitha 2014年

我尝试了Okular编辑选项。这是“工具”下的“审阅”选项。但是,它不会与任何PDF查看器一起显示,因此显然不是PDF的一部分,因此使其无用。
Faheem Mitha 2015年

我能够在LibreOffice Draw中打开PDF,绘制一个矩形并导出回PDF。但是,PDF(最初是由Docbook生成的)具有可单击的目录-布局被严重弄乱了,不再可以单击这些项目以跳转。
Oskar Berggren

8

由于您只想在预定位置覆盖文本,因此可以使用pdftk它。

您需要两个PDF文件。一种是您要用文本标记的PDF文件。另一个PDF文件是您要标记的文本。第二个必须具有透明的背景。您可以使用LibreOffice Draw轻松实现此目的,然后使用cups-pdf将其打印为pdf。导出为PDF(即使您未选择PDF1 / A)也会使背景变得不透明。

然后,您执行以下操作:

pdftk input.pdf stamp overlay.pdf output stamped.pdf

如果要在不同页面上使用不同的覆盖,请创建一个多页面的overlay.pdf(覆盖页面1进入输入页面1,覆盖页面2进入输入页面2,以此类推),然后:

pdftk input.pdf multistamp overlay.pdf output stamped.pdf

由于屏幕截图很流行,因此输入和结果如下所示。input.pdf当然是使用LibreOffice的所有重要笑脸工具制作的:

屏幕截图


如何使用CUPS-PDF制作PDF

CUPS-PDF是CUPS的打印驱动程序,可从打印作业创建PDF文件。要使用它,必须使用CUPS。安装cups-pdf软件包(至少在Debian中是必需的)。访问CUPS管理界面,http://localhost:631/admin然后单击“添加打印机”。您应该看到“ CUPS-PDF(虚拟PDF打印机)”作为一个选项。选择它,按继续。填写队列名称,等等,然后再次继续。如果要求提供PPD,则属于通用。

添加完该打印机后,即可在中对其进行完全配置/etc/cups/cups-pdf.conf

要使用它,请像平常一样打印,但是选择它作为打印机,而不是普通打印机。PDF文件将$HOME/PDF默认放入。


CUPS在添加打印机时可能会提示您进行身份验证,用户需要将其添加到所需的组sys默认情况下)
aksh1618

6

从Debian 8(Jessie)版本开始,Okular可以在PDF上做注释。这是版本:

okular --version
Qt: 4.8.6
KDE Development Platform: 4.14.2
Okular: 0.20.2

下面是它的工作原理:

有关详细信息,请参见Okular手册中的“注释”参考页

引用该页面:

从Okular 0.15开始,您还可以将注释直接保存到PDF文件中。仅当Okular已使用Poppler渲染库的0.20版或更高版本构建时,此功能才可用。

首先,您需要注释PDF。您可以通过菜单或按键来执行此操作。您可以在Tools->Review或通过按键找到工具F6

这将在左侧弹出一个带有各种选项的菜单。

在此处输入图片说明

内联注释的最佳选择可能是“内联注释”。按照链接中的说明保存注释。如链接中所述,注释的背景颜色,字体和其他功能可以自定义。另请参阅 在Okular中更改和保存pdf注释设置?

默认情况下,注释信息存储在以下位置的xml文件中:

~/.kde/share/apps/okular/docdata

或更一般而言,在该位置

$(kde4-config --localprefix)/share/apps/okular/docdata/

要将注释保存到PDF文件,您需要使用来将注释保存回文件Save As

注释可以通过xpdf和evince看到(它会发出警告“ WARNING **:未实现的注释:POPPLER_ANNOT_FREE_TEXT。这是一个已知问题,将来可能会实现。”但仍显示注释),但不会出现acroread(9.5) .5)或Chromium(45.0.2454.85)的PDF插件。它还使用gtklpCUPS前端打印Ok 。


其他提示:

  • 可以将“ 查看”功能添加到工具栏:设置-配置工具栏-在工具栏下进行更改:主工具栏okular_part-通过搜索“查看”来过滤可用操作,并将其添加到右侧的当前操作中。

在此处输入图片说明

  • 注释选项可以编辑,可以添加新的变体:右键单击“查看”按钮,然后选择“配置注释”

在此处输入图片说明


3

您也可以使用gimp

$ gimp foo.pdf

                                                      在此处输入图片说明

点击“导入”:

                                          在此处输入图片说明

玩:

                                           在此处输入图片说明

保存:

   !在此处输入图片说明


…但是您丢失了所有矢量信息。
wchargin

2

注释的一个不错的选择是TeX,特别是LaTeX与LaTeX软件包结合使用pdfpages,以及图形软件包TikZ。

下面是一个示例脚本。这是两页文档的叠加text.pdf。使用TikZ可以选择\includepdfpdfpages软件包中调用命令pagecommand以包含pdf的第一页以及一些覆盖的文本。然后,使用包含第二页\includepdf,但没有任何注释。

这是一种非常强大而又简单的方法,因为它使用了TeX和TikZ的全部功能。

如果您不熟悉TeX / LaTeX,则可以通过复制此脚本,对其进行调用(例如说)并example.tex更改text.pdf为任何具有2页的PDF进行测试。然后就跑

pdflatex example.tex

确保example.textext.pdf处于同一目录级别。

如果要生成2页的pdf进行测试,一种简单的方法是调用groff

echo .bp | groff -T pdf > text.pdf

.bp代表分页,并创建两页的空白PDF。此命令由James Lowden提供

\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\begin{document}

\includepdf[pagecommand=
{\begin{tikzpicture}[remember picture, overlay]
    \node at (2,2.0){\large{\textbf{PLEASE WRITE EMAIL ADDRESS:}}};
    \draw[thick,latex-] (current page footer area.south east) -- +(-3.4cm,-2.2cm)
    node[pos=1,anchor=east] (a) {\large\textbf{{CONTINUED ON NEXT PAGE}}};
  \end{tikzpicture}}
,pages=1]{text.pdf}
\includepdf[pages=2]{text.pdf}

\end{document}

在执行此操作时,在页面上放置坐标网格很有用,因此定位变得更加容易。例如,请参见网格答案中给出的配方,其中 各面都有坐标? 并 在问题中链接了“ 循环空间”的原始答案

这是结果的图像:

示例页面

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.