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 桌面的 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 工具包) 命令很有用。 它可以提取和注入书签元数据、重新排列和连接页面、将多个 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) 下使用 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 文件。 我还使用 CloudConvert,它是 Google Drive 的一个附加组件。 后者效果出奇地好,即使对于相当复杂的文件也是如此。 限量转换是免费的,持续批量转换的成本也很低。

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

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

好问题! 这不是我个人探索很多的领域,但我真的很想稍微探索一下,找出这个领域有哪些可用的工具。 你有什么特别喜欢的吗?

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

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

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

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.