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 年更新
工作:
请注意,为了在 macOS 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 服务器的主要内容,如果未能解决你的问题,请参考以下文章
Windows下虚拟机安装Mac OS X ----- VM12安装Mac OS X 10.11