Adobe Acrobat PDF 的开源替代品

23 位读者喜欢这篇文章。
Open and closed source

Opensource.com

难道我们不应该生活在一个无纸化的世界里吗?

我不可能是唯一一个想象过未来办公室的人,它将摆脱八乘十一英寸(或者对于我的国际友人来说是 A4)纸张的束缚,而且早就应该到来了。然而,我们最终处在一种中间状态,不是无纸化,而是少纸化。

情况可能会更糟。

凭借可靠的扫描仪、电子邮件和各种其他通信工具,以及在整理我的数字档案方面变得非常出色,我对我们今天的处境并不完全不满意。我偶尔也会承认阅读纸质书、寄明信片,或者(天哪)打印一些东西给别人。

在世界进一步摆脱纸张之前,适合打印的文件格式将继续渗透到我们的数字领域。而且,不管你喜欢与否,PDF,“便携式文档格式”,似乎是创建和共享适合打印的文件以及归档源于打印的文件的首选格式。

多年来,处理 PDF 文档的唯一选择是 Adobe Acrobat,无论是免费的阅读器版本还是用于 PDF 创建和编辑的付费版本。但是今天,有许多开源 PDF 应用程序已经蚕食了这种市场主导地位。对于像我这样的 Linux 用户来说,仅在 Windows 或 Mac 上运行的专有应用程序无论如何都不是一个选择。

由于 PDF 文件在如此多不同的情况下用于如此多不同的目的,您可能需要货比三家,才能找到满足您确切需求的 Adobe Acrobat 开源替代品。以下是我喜欢的一些工具。

阅读 PDF

对于阅读 PDF,现在很多人无需使用任何外部应用程序即可完成。 FirefoxChromium(Google Chrome 浏览器的开源版本)都捆绑了内置的 PDF 阅读器,因此对于大多数用户来说,不再需要外部插件。

对于下载的文件,基于 GNOME 的 Linux 发行版的用户可以使用 Evince (或 GNOME 2 分支 MATE 上的 Atril),这是一个功能强大的 PDF 阅读器,可以轻松快速地处理大多数文档。 Evince 也有 Windows 端口,尽管 Windows 用户可能还想查看 GPLv3 许可的 SumatraPDF 作为替代品。 KDE 的 Okular 用作 Plasma 桌面的 PDF 阅读器。所有这些都具有填写 PDF 表单、查看和添加评论、搜索文本、选择文本等功能。

对于通用、简单且快速的 PDF 阅读器,请尝试 xpdf

创建 PDF

就我个人而言,LibreOffice 的导出功能最终成为我创建的 95% 的 PDF 的来源,这些 PDF 不是由 Web 应用程序为我构建的。ScribusInkscapeGIMP 都支持原生 PDF 导出,因此无论您需要制作哪种文档——复杂的布局、格式化的文本、矢量或栅格图像,或某种组合——都有一个开源应用程序可以满足您的需求。

对于几乎所有其他应用程序,CUPS 打印系统在将文档输出为 PDF 方面做得非常出色,因为打印机和 PDF 都依赖 PostScript 来表示页面上的数据(无论页面是数字的还是物理的)。

如果您不需要花哨的图形界面,您还可以通过纯文本和一些方便的终端命令生成 PDF。每个人都有自己喜欢的,但可能最受欢迎的是 Pandoc,它可以接受几乎任何文档格式并将其转换为几乎任何其他格式。它翻译文本格式的能力令人震惊,因此它可能就是您真正需要的全部。但是,还有其他几种解决方案,包括 DocbookSphinxLaTeX

编辑 PDF

编辑是一个含义丰富的术语。对于某些人来说,编辑 PDF 意味着更改几个单词或替换旧图像,而对于另一些人来说,它意味着更改元数据,例如书签,而对于还有一些人来说,它意味着操作页面顺序或调整打印分辨率。没有人想要的权威答案是:不要编辑 PDF,编辑源文件,然后导出新的 PDF。但这并非总是可行,幸运的是,有一些很棒的工具可以使各种编辑成为可能。

LibreOffice Draw 在编辑 PDF 文件方面做得非常出色,让您可以完全访问文本和图像。但这有一些注意事项,因为 PDF 格式具有灵活性。如果您没有安装 PDF 中使用的字体,则文本的流向可能会因字体替换而改变。如果 PDF 是从扫描件创建的,那么您将只有文本图像,而不是可编辑的文本。

Inkscape 在打开其他地方创建的文档方面也做得很好,如果您的文档以图形为主,那么它可能是一个更直观的选择。如果您没有安装字体,Inkscape(通过 Poppler 渲染器)可以跟踪字符,以便即使没有实际的字体数据,也可以保持文本的外观。当然,这会丢失文本数据(您只有字母的形状,而不是可选择的文本本身),但是当外观最重要时,这是一个不错的功能。

还有一些独立的工具,例如 GPLv2 许可的 PDFedit,但是我使用 Inkscape 和 LibreOffice 的效果非常好,以至于近年来我不需要使用单独的编辑器。

如果您的编辑任务更多的是关于演示文稿而不是内容,您可能会发现 pdftk-java (PDF ToolKit) 命令很有用。它可以提取和注入书签元数据、重新排列和连接页面、将多个 PDF 合并为一个、将 PDF 分开等等。如果您还不习惯使用终端,PDFSam 具有许多类似的功能,但包含图形界面。

最后,您可以使用 GhostScript 命令 gs 直接调整 PostScript 属性。GhostScript 是 PostScript 的开源解释器,因此您可以使用它执行非常底层的任务,例如将一种字体替换为另一种字体,或调整图像的分辨率,或完全删除图像。

这些基于终端的工具也非常适合自动化操作。


我们知道这些不是唯一的选择。您经常处理 PDF 吗?您是否有喜欢的应用程序来帮助您?请在下面的评论中告诉我们您使用什么以及为什么它对您有效。

您有兴趣阅读更多类似的文章吗? 注册我们的每周电子邮件通讯

编者注:本文最初于 2016 年发布,现已更新。

标签
Jason Baker
前红帽员工。现在是顾问和有抱负的企业家。地图爱好者、创客和开源桌面和自托管软件的热情安装者。
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,通常是同时工作。

33 条评论

开源替代品中的数字签名怎么样?这可用吗?

我完全同意 Nino 的观点,不幸的是,世界各地的政府都被游说在纳税申报和其他方面使用 Adobe 数字签名,这要归咎于我们腐败和无能的政客,他们 99% 的时间认为互联网可以被 contained 在一个黑匣子里,防火墙是真正的火墙。

回复 作者 Nino Vranešič

我几乎对 PDF 执行的所有操作都使用开源替代品,除了文档转换。对于 pdf 到其他格式的转换,有一些不错的云替代品;不幸的是,在复杂的文档转换方面,甚至有时是中等复杂的文档转换方面,没有一种开源替代品能与 Adobe 或其他仅限 Windows 的软件包(OmniPage 是我目前最喜欢的付费程序)相媲美。顺便说一句,像许多其他讨论一样,这个讨论似乎假设 Adobe 是唯一可行的商业 pdf 包;在我看来并非如此,还有其他包也同样好,甚至更好。为什么不将此讨论改为付费与免费,而不是开源与 Adobe 呢?

回复 作者 Nino Vranešič

我一直都在使用 PDF SAM (http://www.pdfsam.org/)。它是一个易于使用的实用程序,用于拆分或合并 PDF。例如,我使用它来创建费用报告 PDF,将来自许多不同来源的发票和对账单放在一起。除了数字签名(像 @Nino 一样,我还没有在开源查看器中找到),这是我最常使用 PDF 做的事情。

最近我从 LIbreOffice 切换到 LateX 或 Markdown。LaTeX 编辑器直接导出为 PDF。我的 markdown 笔记通过 Pandoc 运行。

最近,我切换到 Okular 进行阅读,因为它允许文本高亮显示。 https://okular.kde.org/

我大部分时间都使用 Evince,因为它随 Ubuntu 一起提供。我喜欢 OpenOffice 和现在的 LibreOffice 的主要原因之一是能够轻松地将任何文档导出为 PDF。Linux 和 Unix 也具有非常好的命令行实用程序,用于读取和写入 PDF 文件。

Master PDF 是我首选的 PDF 编辑程序。到目前为止,我发现的在 KDE 上运行的最通用和最完整的 PDF 编辑器。唯一的缺点是在合并文件时无法选择多个文档。
不是开源的,但在 Linux 上可以免费使用。当我报告一个错误时,他们甚至给了我一个“其他操作系统”版本的密钥,所以我完全放弃了 adobe。

我几乎总是使用 Okular 阅读 PDF。但是,我一直在使用 Acrobat 从扫描件创建 PDF。

不久前,我做了一个项目,扫描了一家公司 15 年的报纸(大幅面;即 11x17)。我使用 Acrobat 对所有扫描件进行索引,以创建一个可搜索的库。是否有开源解决方案可以做到这一点?

Inkscape 只能打开 PDF 的单页

说得好。对我来说,我唯一需要对基于矢量的 PDF 进行详细更改的时候是当主题是景观或场地平面图或其他地图时,因此导出只需要编辑的页面(即使有多个页面)也不是什么大问题——我通常非常详细地编辑一页。但是对于有其他用例的人来说,我可以想象这会令人沮丧,并且是使用 Draw 的一个很好的理由。

回复 作者 Stephen Paul Weber (未验证)

我在 CrossOver (Wine) 下使用 Foxit Reader 7。效果很好,我可以编辑!Linux 版本是一个非常糟糕的表亲。

你忘记了 Scribus,这是唯一可以很好地管理用于打印的 CMYK 文档的开源文档编辑器。

谢谢,Scribus 实际上在“创建”部分中提到了——我不需要管理精确的打印颜色,但对于任何需要这样做的人来说,这是一个很好的观点。

回复 作者 ttoine

你忘记提及 Atril,那是最好的 Linux PDF 阅读器,比 Evince 好得多。

对于在 Linux 下阅读 pdf 文件,我大部分时间都使用 Atril(Evince 的 Mint “分支”)。对于拆分或合并 pdf 文件,我使用 pdfsam(适用于 Linux 和 Windows)。对于将扫描的图像(主要是科学论文)转换为可搜索的 pdf 文件,我使用 gscan2pdf。它可以使用 tesseract 或 cuneiform 来进行 ocr - 两者的结果都非常差。我读到 tesseract 是 Linux 上“最好”的 ocr 程序,但与 10 年前的“专业”(闭源)解决方案(如 FineReader)相差甚远(很抱歉这么说)。我也尝试过从命令行使用 tesseract,结果同样很差(尽管扫描质量很高,约为 600 dpi,并且没有伪影)。Tesseract 在识别页面布局方面存在巨大问题(即使是只有单列的页面也是如此 - 更不用说多列页面了),并且其正确识别单个字符的能力也很差(即使您选择了正确的文本语言)。我曾在某处读到,tesseract 过去要好得多,但开发人员已经破坏了它(不确定是否属实)。OCR Feeder 等工具还提供保存带有文本层的扫描文本图像 - 但对我来说,这不起作用(程序完全无法保存 pdf 文件,无论是否可搜索)。
我也偶尔使用 Master PDF 编辑 pdf - 主要用于插入书签,以便在文档中导航。看起来,没有其他开源 pdf 编辑解决方案可以做到这一点(Libre/OpenOffice 在将文档另存为 pdf 时会从标题插入书签,但是当您将其他页面附加到 pdf 文件时,您可能想要添加其他书签)。

我使用 pdflatex 创建 pdf。这是一个很棒的程序,可以嵌入视频和插入超链接。我唯一的挫败感是只有 acrobat 可以访问这些链接!我相信问题是 pdf 对 javascript 的支持,但我不确定,希望有人最终会制作一个 Linux 替代品。

Firefox 有一个名为 PDFEscape 的扩展程序,它也允许您编辑 PDF。

Scribus 的优势在于文本和图像的复杂布局以及其非常精确地处理字体和颜色的能力。
它还可以将 PDF 导入为矢量绘图,或者更准确地说,是矢量图形组,可以取消分组并编辑为矢量绘图。
目前,还在进行工作,以便能够处理具有非拉丁语言和字体的复杂文本布局。

在有限的情况下,我使用 Google Docs 转换具有简单直接的 pdf 文件的 pdf 文件。我还使用 CloudConvert,它是 Google Drive 的一个插件。后者效果出奇地好,即使是相当复杂的文档也是如此。对于有限的转换是免费的,对于持续的批量转换,成本也很低。

我不知道 PDF 编辑的最新进展,我经常使用 pdflatex,但也使用许多其他支持导出为 PDF 的编辑工具。

从命令提示符创建 PDF 或从命令提示符使用查看器打开 PDF 怎么样?您对命令行友好的 PDF 工具有什么建议吗?

好问题!这不是我个人探索很多的领域,但我真的很有兴趣进行一些探索,找出这个领域有哪些可用工具。您有特别喜欢的吗?

回复 作者 Arie Morgenstern (未验证)

我需要将 PDF 图像转换为 JPG,发现 Image Magick (www.imagemagick.org) 效果很好。我想从技术上讲,这并不是你所指的意思,因为它用于创建、编辑、合成或转换位图图像,但它对我很有效。

您好,我正在寻找一个开源解决方案,用于创建 pdf 或文档,我们可以在其中控制“保存”、“打印”等选项,以便我可以禁用/启用这些选项。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.