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(谷歌 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č

数字签名也是 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 或文档,我们可以在其上控制“保存”、“打印”等选项,以便我可以禁用/启用这些选项。

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