Adobe Acrobat PDF 的开源替代品

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

Opensource.com

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

我不可能是一个人想象过未来的办公室,摆脱了 8.5 x 11 英寸纸张(或者对于我的国际朋友来说是 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 Desktop 的 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% 的时间认为互联网可以包含在一个黑匣子里,防火墙是真正的火焰墙。

回复 作者 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) 下使用福昕阅读器 7。效果很好,我可以编辑!那里的 Linux 版本非常糟糕。

你忘记了 Scribus,它是唯一一款能很好地管理用于印刷的 CMYK 文档的开源文档编辑器。

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

回复 ,作者:ttoine

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

在 Linux 下阅读 PDF 文件时,我大部分时间使用 Atril(Mint 版本的 Evince)。对于 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 文档转换简单直接的 PDF 文件。我也使用 CloudConvert,它是 Google Drive 的一个附加组件。后者效果出奇地好,即使是处理相当复杂的文件也是如此。它对于有限的转换次数是免费的,对于持续的大批量转换则只需最低成本。

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

那么从命令行创建 PDF 或者从命令行使用查看器打开 PDF 呢?您对命令行友好的 PDF 工具有什么建议吗?

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

回复 ,作者:Arie Morgenstern(未验证)

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

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

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© 2025 open-source.net.cn. All rights reserved.