OS X 10.11 上的 PDFtk 服务器

Posted

技术标签:

【中文标题】OS X 10.11 上的 PDFtk 服务器【英文标题】:PDFtk Server on OS X 10.11 【发布时间】:2015-12-06 23:32:38 【问题描述】:

我已经在OSX pre 10.11 上使用PDFTK 服务器一年多了,在命令行上运行命令没有任何问题。

安装 OSX 10.11 beta 后,我无法再在命令行上运行任何 PDFTK 服务器命令。它不会抛出任何错误,我尝试执行的所有命令都会无限期地挂起。

我一如既往地从PDFTK 服务器网站下载的 pkg 安装:

https://www.pdflabs.com/tools/pdftk-server/

我还尝试使用 Homebrew 从源代码安装。安装工作,但我得到相同的结果,命令只是挂在终端:

Homebrew tap

我已通过他们的反馈助手应用程序向 Apple 发送了投诉,该应用程序在两个月前安装测试版时安装,但没有任何回应。

有人告诉我有关 Apple 反馈助手的信息:

您可能永远不会收到回复。苹果只通过回复 操作系统主要错误的反馈助手 需要额外的信息。这不是获得支持的方式,即使 对于第三方应用程序来说则更少。

我还联系了包裹的制造商PDF Labs,但没有得到回应。

在MacPorts,他们在 OS X 10.11 上构建时遇到问题,这是否意味着 PDFtk 和 10.11 在软件级别存在兼容性问题?

我在网上搜索了有关可能导致问题的原因以及如何解决问题的线索,但没有发现任何具体的线索。

在 OS X 上,我不知道如何确定升级后是否存在权限或路径,甚至是 Java 问题。

感谢您提供解决根本原因或提供修复程序的任何帮助。


更新 1:

我收到了Sid Steward at PDF Labs 的回复:

几乎只要测试版发布,我们就一直在努力解决这个问题 出去。我们仍在努力。似乎有一个 与 pdftk 使用的(非 Apple)库之一不兼容 和 OS X 10.11。目前我正在安装另一个更新 苹果的开发者工具希望它能解决这个问题。 我会向您介绍我们的进展。


更新 2:

Sid Steward at PDF Labs再次:

看起来有两个线程在 pdftk 下运行,并且它们 陷入僵局。这意味着每个线程都在等待另一个线程 完成。我不是这里的专家,但这是我的印象。这里有一个 来自 Mac 的 Activity Monitor 的屏幕截图来说明:

上面的快照来自尝试运行当前正在运行的 pdftk 二进制文件 我们在 OS X 10.11 上的网站。上面提到的 libgcj 库附带 pdftk,其他的是 OS X 库。

正如我所说,我刚刚安装了昨天发布的 Xcode 7.0.1 在应用商店。我现在将尝试使用这些工具来构建 pdftk。


更新 3:

MacPorts 正在处理 PDFtk 的构建问题,这是一个 update on that thread(注意:这与 PDFtk Labs 无关):

这是由于使用 Apple 在 10.11 中重新编译 libunwind Clang 7 产生新的有效优化(根据 Apple) 解决 FSF boehm-gc 中的一个未知错误。

​https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848

不要指望 Apple 会提供任何修复,因为他们无法触及 GPLv3 代码 查看 FSF boehm-gc 问题(除非他们使用 gcc43 仍然应该是 GPLv2 的包)。这个问题是由 libunwind 的重新编译由以下事实证明: 从 10.10 替换 libunwind.dylib 消除了 boehm-gc 和 gcj 失败。

请注意,它被归档为 radr://21372179,“FSF boehm-gc 库 建立在 10.10 上未能通过其在 10.11 上的测试”但关闭为 一个 FSF boehm-gc 错误。


更新 4:

MacPorts 找到了解决构建问题的方法,这是update on that thread

附加的 Portfile.diff(与建议的 gcc5 更新一起使用时) #49227 修复了 gcj)解决了 pdftk 的构建问题。


更新 5:

Sid Steward at PDF Labs 构建成功,他的反馈:

MacPorts gcc5 的修复允许我构建一个可以工作的 pdftk 合并 El Capitan 上的 PDF。修复程序已添加到您拥有的票证中 发布到:

MacPorts

在将它打包成一个 安装程序。这个过程可能需要几天时间。


【问题讨论】:

付费支持可能会让您从 PDF 实验室获得更快的响应。 homebrew 是构建完成的 25%。我会告诉你进展如何。 在构建@hrbrmstr 上取得任何进展? 我想到了 PDF Labs 的付费支持。如果我收到回复电子邮件,我会尝试询问。 好问题@AlexWood。据我所知,PDF 实验室正在解决这个问题,但没有公共错误跟踪器。如果您发现其他情况,我会相应地更新正文。 【参考方案1】:

感谢您的耐心等待。我已经在 OS X 10.11 El Capitan 上成功测试了这个 pdftk 安装程序和二进制文件:

https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg

我将尽快更新我们的 PDF Labs 网站以反映此更新。

如果您已经从旧的安装程序中安装了 pdftk,那么它应该可以毫无问题地安装在它上面——在安装它之前不需要删除旧的 pdftk。

请注意,此安装程序/二进制文件尚未在旧版 OS X 上进行测试。

请告诉我这对你有什么作用。

我要感谢 Aaron 打开此线程并帮助我们关注构建工具时遇到的问题。我还要感谢 MacPorts 团队的专业和及时的工作!

【讨论】:

我们可以使用自制水龙头来获得这个吗? 感谢您提供此信息。它解决了我在使用pdftk 时遇到的问题。 FWIW,您的安装程序有两个问题,第一个(次要)是它没有签名。第二个是它将链接安装到/usr/share/man/man1。我实际上有点惊讶 El Capitan 的系统完整性保护允许这样做,因为我认为它是一个系统目录。放置手册页链接(镜像可执行文件的/usr/local/bin 链接)的正确位置是/usr/local/share/man/man1 需要注意的是pdftk主页还没有更新,所以即使你已经从网页安装了2.02版本,你也需要使用这个答案中的文件重新安装它。 这是一个很棒的更新!您可以更新您的网站以包含它吗? 感谢您的修复和回复此线程。我今天从你的网站下载了 OSX El Capitan 的 PDFtk,它就像这个线程中描述的那样挂起。 pdftk --version 从下载报告的版本是 2.02。我刚刚下载了此响应中的链接参考,还报告了 2.02 版,它没有挂起。您可能想在pdflabs.com/tools/pdftk-server 上查看您提供的 OSX 版本【参考方案2】:

2020 年更新

工作:

请注意,为了在 ma​​cOS High Sierra (10.13.5)Mac OS Catalina (10.15) 上安装它(正如 Ivan Kurmanov 在cmets),我必须从以下位置下载包:

https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg

当然,它不会让您正常安装,因为它不是从“App Store”下载的,所以请使用以下说明:

    在 Finder 中,找到您要打开的应用程序。

    请勿使用 Launchpad 执行此操作。 Launchpad 不允许您访问快捷菜单。

    按住 Control 并单击应用程序图标,然后从快捷菜单中选择“打开”。

    点击打开。

    该应用程序被保存为您的安全设置的例外,您可以在以后通过双击它来打开它,就像您打开任何已注册的应用程序一样。

之后只需完成安装过程,这几乎是 NEXT - NEXT 并享受 :)

没有工作:

以下 brew 命令没有对我有用:

brew install https://raw.githubusercontent.com/turforlag/homebrew-cervezas/master/pdftk.rb

它给出了以下错误:

执行失败; /usr/bin/xar -xf /xxxx/Library/Caches/Homebrew/downloads/\#\url_sha256\--\* 退出 有 1 个。

祝你好运!

【讨论】:

上面的链接pdflabs.com/tools/pdftk-the-pdf-toolkit/… 似乎可以在 Mac OS Catalina (10.15) 上生成一个工作的 pdftk。 @IvanKurmanov 感谢您的输入,我会将其添加到答案中 太棒了!!这真的救了我。我即将放弃 pdf_forms gem 并寻找另一种解决方案。 2020-Dec-21 - 在 macOS 10.15.7 (Catalina) 1. DL pdflabs.com/tools/pdftk-the-pdf-toolkit/… 2. 打开 Finder,使用 Ctl+单击打开从快捷菜单(绕过 SIP) 3. 启动并在出现提示时遵循几个默认值... 结果:which pdftk -> /usr/local/bin/pdftk pdftk --version -> (2.0.2) FTW!跨度> 【参考方案3】:

感谢 github.com/quantiverge,pdftk 应该可以在 brew 下安装。这个是在 OSX Sierra 中测试的。

在终端中运行以下命令。

brew install https://raw.githubusercontent.com/turforlag/homebrew-cervezas/master/pdftk.rb

更新了来自 github.com/zph 的修复 - 谢谢!

【讨论】:

如果走 Homebrew 路线,上述方法并不完全有效。删除depends_on :macos => :lion并将@tarball_path替换为下载的路径。脚本崩溃后,下载应该在:$HOME/Library/Caches/Homebrew/downloads/。调整后它应该可以在 High Sierra 10.13.6 上正常工作。 在 catalina 10.15.7 中不起作用:'brew extract' or 'brew create' and 'brew tap-new' to create a formula file in a tap on GitHub instead.: Invalid usage: Non-checksummed download of pdftk formula file from an arbitrary URL is unsupported! 【参考方案4】:

@Learner 我在这里修复了配方:https://github.com/zph/homebrew-cervezas/blob/master/pdftk.rb 并向您链接的 repo 提交了 PR。

在合并之前,您可以:

brew install https://github.com/zph/homebrew-cervezas/blob/master/pdftk.rb

【讨论】:

【参考方案5】:

截至 2018 年 5 月 9 日的更新状态:

    它不在 brew 标准源中 https://github.com/spl/homebrew-pdftk 未维护/已弃用 在https://www.pdflabs.com/tools/pdftk-server/

【讨论】:

【参考方案6】:

Pdftk 目前在 OSX Sierra 上不适合我。

如果你的系统上安装了docker,你可以改用我的轻量级docker image:

$ docker run -v $(pwd):/files alpine-pdftk --help

更好的是,只需使用以下脚本作为替代:

#!/usr/bin/env bash
docker run --rm -v $(pwd):/files jottr/alpine-pdftk "$@"

现在您可以按预期使用 pdftk:./pdftk --help

【讨论】:

@obh 的回答在 Sierra 中对我有用,但我也很欣赏 docker 解决方案。特别喜欢你使用高山的事实:) 如果我想在容器中运行该镜像,我是否必须更新 Dockerfile?【参考方案7】:

帮我安装新的,https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg

删除旧的 pdftk 版本; 从 finder 中搜索 pdftk,移至垃圾箱并完成 pdftk_uninstall.sh。

$ pdftk -version

pdftk 2.02 操作 PDF 文档的便捷工具 版权所有 (c) 2003-13 Steward and Lee, LLC - 请访问:www.pdftk.com 这是免费软件;复制条件见源代码。有 不提供任何保证,甚至不保证适销性或特定用途的适用性。

【讨论】:

在 OS X Sierra 中 pdftk 提供 dyld: Symbol not found: __ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev Referenced from: /usr/local/bin/pdftk Expected in: /usr/local/bin/../lib/libstdc++.6.dylib in /usr/local/bin/pdftk【参考方案8】:

如果您使用manual of patching ports 以及 Macports 票证#48528 和 #49227 中提供的四个补丁,您可以在 El Capitan 下运行 PDFTK 服务器。

在我的机器上编译修补的 GCC5 花了很长时间。此外,将本地端口命名为与原始端口相同(即 gcc5 和 pdftk)似乎是个好主意,否则您必须调整端口文件。

还可以使用 install_name_tool 将生成的 pdftk 二进制文件与其动态库捆绑在一起 关于二进制和动态库。我在另外两台机器上以这种方式成功运行了pdftk。

【讨论】:

【参考方案9】:

解决方法: 我们在 8 月份向 Sid 提出了这个问题,但他仍然没有解决这个问题,所以我认为可以公平地说寻找替代方案是个好主意。正因为如此,我们主动在以下存储库中提交了一些可供人们免费使用的首批工具:

https://github.com/flexpaper/OSX-PDF-Toolkit

它包含易于使用的 CAT 和 BURST 脚本。我们打算在未来添加更多工具。随意贡献

这些新工具使用本地 OSX 库,不需要任何第三方依赖项。耶!

编辑:添加了关于这是一种解决方法的信息

【讨论】:

非常欢迎您将这些工具提交到存储库。在添加和删除的同时添加水印和连接应该不难。【参考方案10】:

第三次编辑:以下不是修复,而是解决方法,(`因为有时等待数月才能修复到达是不可行的)。


第二次编辑: Coherent PDF Command Line Tools(又名cpdf)可免费用于非商业用途,并且可以授权用于商业用途。它提供了与pdtk 相当的功能,并且(至少在我的 MacBook Pro 上)似乎在 El Capitan 下运行良好。


编辑:这个*** answer 告诉如何使用ghostscript 连接文件,从而提供类似于"pdftk ... cat output out.pdf" 的(尴尬的)功能。


出于某些目的,包ghostscript---与texlive等LaTeX发行版一起提供---提供与pdftk类似的(但对用户不太友好)功能。

例如,从多页 pdf 文档中提取第 6-7 页:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
  -dFirstPage=6 -dLastPage=7 \
  "-sOutputFile="$EXTRACTED_FILENAME_HERE" \
  "$SOURCE_FILENAME_HERE" ;

以上对我有用...您的里程可能会有所不同!

不用说,将pdftk 恢复到 El Capitan 下的全部功能会更好......pdftk 确实是一个了不起的实用程序。

【讨论】:

以上是关于OS X 10.11 上的 PDFtk 服务器的主要内容,如果未能解决你的问题,请参考以下文章

在远程 OS X 服务器上创建一个新的 git 存储库

Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11

markdown 全新安装 - OS X 10.11 El Capitan

OS X10.12上安装cocoapods

text Mac OS X键盘布局文件,适用于10.11

OS X 10.11系统下cocoaPods安装注意事项