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(谷歌 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% 的时间都认为互联网可以被包含在一个黑匣子里,防火墙是一堵包裹着火焰的真墙。

回复 ,作者 Nino Vranešič

数字签名也是 LibreOffice Draw 中的一项功能 :)

回复 ,作者 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.