166

我已经使用PDFTKServer onOSX pre 10.11一年多了,在命令行上运行命令没有任何问题。

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

PDFTK像往常一样从从服务器网站下载的 pkg 安装:

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

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

自制水龙头

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

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

您可能永远不会收到回复。Apple 仅通过反馈助手回复他们需要额外信息的操作系统的主要错误。这不是一种获得支持的方式,对于第三方应用程序更是如此。

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

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

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

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

任何帮助解决根本原因或提供修复都将不胜感激。


更新 1:

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

几乎只要测试版发布,我们就一直在努力解决这个问题。我们仍在努力。似乎与 pdftk 使用的(非 Apple)库之一和 OS X 10.11 不兼容。目前,我正在为 Apple 的开发人员工具安装另一个更新,希望它能解决问题。我会告诉你我们的进展。


更新 2:

PDF Labs 的 Sid Steward

看起来有两个线程在 pdftk 下运行,并且它们处于死锁状态。这意味着每个线程都在等待另一个线程完成。我不是这里的专家,但这是我的印象。这是来自 Mac 的活动监视器的屏幕截图来说明:

在此处输入图像描述

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

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


更新 3:

MacPorts正在处理 PDFtk 的构建问题,这是该线程的更新(注意:这与 PDFtk Labs 无关):

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

​<a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848

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

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


更新 4:

MacPorts找到了解决构建问题的方法,这是该线程的更新

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


更新 5:

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

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

MacPorts

在将其打包到安装程序中之前,我将继续对这个 pdftk 进行全面测试。这个过程可能需要几天时间。


4

10 回答 10

261

感谢您的耐心等待。我已经在 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 团队的专业和及时的工作!

于 2015-10-20T23:03:54.573 回答
48

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

在终端中运行以下命令。

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

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

于 2016-12-20T13:17:37.887 回答
22

2020 更新

工作:

请注意,为了在macOS High Sierra (10.13.5)Mac OS Catalina (10.15)上安装它(正如 Ivan Kurmanov 在评论中提到的那样),我必须从以下位置下载该软件包:

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

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

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

  2. 不要使用 Launchpad 来执行此操作。Launchpad 不允许您访问快捷菜单。

  3. 按住 Control 键点按应用程序图标,然后从快捷菜单中选取“打开”。

  4. 单击打开。

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

之后只需完成安装过程,这几乎是 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 退出。

祝你好运!

于 2019-10-04T12:11:24.620 回答
7

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

如果你的系统上安装了docker,你可以使用我的轻量级docker 镜像

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

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

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

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

于 2016-11-01T01:26:00.297 回答
3

为我工作安装新的,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 这是免费软件;复制条件见源代码。没有任何保证,即使是适销性或特定用途的适用性也不行。

于 2016-03-16T15:01:35.053 回答
2

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

在合并之前,您可以:

brew install https://github.com/zph/homebrew-cervezas/blob/master/pdftk.rb
于 2019-10-04T19:06:32.687 回答
1

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


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


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


出于某些目的,该软件包ghostscript--- 随 LaTeX 发行版一起texlive提供 --- 提供与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确实是一个了不起的实用程序。

于 2015-10-03T12:48:24.407 回答
1

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

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

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

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

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

于 2015-10-14T06:43:14.257 回答
1

如果您使用修补端口手册以及Macports 票#48528和 #49227中提供的四个修补程序,则可以在 El Capitan 下运行 PDFTK 服务器。

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

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

于 2015-10-16T13:57:24.320 回答
1

截至 2018-05-09 的更新状态:

  1. 它不在 brew 标准源上
  2. https://github.com/spl/homebrew-pdftk未维护/已弃用
  3. 它位于https://www.pdflabs.com/tools/pdftk-server/
于 2018-05-09T08:58:23.787 回答