OS X 10.11 上的PDFtk Server

170

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

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

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

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

我还尝试使用Homebrew进行源码安装。 安装成功,但结果相同,命令在终端中卡住:

Homebrew tap

我已通过他们的反馈助手应用程序向苹果投诉两个月了,但没有得到回复。

关于苹果反馈助手,有人告诉我:

您可能永远不会收到回复。 苹果仅通过反馈助手回复操作系统的重大错误,以获取额外信息。 这不是获得支持的方法,甚至对于第三方应用程序也不是如此。

我还联系过PDF Labs,但没有回复。

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

我在网上搜索了线索,想知道问题的原因以及如何解决它,但是没有找到实质性的东西。
在OS X上,我不知道如何确定升级后是否存在权限或路径甚至Java问题。
如果能够帮助排除根本原因或提供解决方案,将不胜感激。

更新 1:

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

我们一直在解决这个问题,几乎和beta版本一样长时间。我们仍在努力中。pdftk使用的一个(非苹果)库似乎与OS X 10.11不兼容。目前,我正在安装另一个更新的Apple开发工具,希望它能解决问题。我会及时向您更新我们的进展。


更新 2:

PDF Labs的Sid Steward再次提到:

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

enter image description here

上面的快照是在尝试在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中一个未知的bug。

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

不要期望苹果会修复这个问题,因为他们无法触及GPLv3代码以查看FSF boehm-gc问题(除非他们使用的是仍然是GPLv2的gcc43软件包)。事实证明,重新编译libunwind导致了这个问题,因为用10.10中的libunwind.dylib替换可以消除boehm-gc和gcj的故障。请注意,此问题被记录为radr://21372179,“在10.11上构建的FSF boehm-gc库未能通过其测试”,但被关闭为FSF boehm-gc错误。

更新4:

MacPorts 发现了解决构建问题的方法,这是该主题的更新

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


更新5:

Sid Steward在PDF实验室成功构建了pdftk,他的反馈如下:

MacPorts gcc5的修复使我能够在El Capitan上合并PDFs。该修复已添加到您发布给的票证中:

MacPorts

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



2
Homebrew已经完成了25%的构建。我会告诉你结果如何。 - hrbrmstr
1
抱歉耽搁了。在OS X El Capitan(GM和10.11.1 beta)上进行的两次尝试都失败了(在编译的一个步骤上卡住了)。 - hrbrmstr
1
我成功地在恢复模式下重新启动了计算机,通过在终端中运行csrutil disable来禁用系统完整性,并将libunwind替换为yosemite版本。 - ruby_object
2
很棒的问题@AlexWood。据我所知,PDF labs正在解决这个问题,但没有公共的bug跟踪器。如果你有其他发现,我会相应更新主文本。 - Aaron
1
Sid来自PDF Labs,刚刚给我发送了这个更新的安装程序:https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg。他说它应该可以在El Capitan上运行 - 我正在测试它。 - Alex Wood
显示剩余12条评论
11个回答

1
第三次编辑:以下并非修复方法,而是解决方法(因为有时候等待修复需要几个月的时间是不切实际的)。

第二次编辑: 连贯PDF命令行工具(也称为cpdf)可供非商业用途免费使用,并可获得商业许可。它提供了与pdtk类似的功能,并且(至少在我的MacBook Pro上)似乎可以在El Capitan下正常运行。


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


对于某些用途,与LaTeX发行版(如texlive)一起提供的ghostscript包提供了类似(但不太用户友好)的pdftk功能。例如,从多页pdf文档中提取第6-7页:
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
  -dFirstPage=6 -dLastPage=7 \
  "-sOutputFile="${EXTRACTED_FILENAME_HERE}" \
  "${SOURCE_FILENAME_HERE}" ;

对我来说,上述方法有效...但你的效果可能有所不同!

毋庸置疑,在El Capitan下恢复pdftk的完全功能会更好... pdftk真的是一个很棒的实用工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接