在OS X 10.11上的PDFtk服务器

我已经在OSX pre 10.11之前的OSX pre 10.11上使用了PDFTK Server一年以上,没有任何问题在命令行上运行命令。

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

我一直从我从PDFTK服务器网站下载的pkg安装:

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

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

自制水龙头

我通过他们的反馈助手应用程序向苹果发送了投诉,两个月前安装testing版时没有得到回应。

我已经被告知有关苹果反馈助手:

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

我也接触到PDF Labs ,这个软件包的制作者,没有回应。

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

我在网上search了一些关于可能导致这个问题以及如何解决问题的线索,但没有发现任何有形的东西。

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

任何帮助要么解决根本原因或提供解决scheme,表示赞赏。


更新1:

我从PDF实验室的Sid Steward听到:

几乎只要testing版已经出来,我们一直在摔跤。 我们仍在努力。 似乎与pdftk使用的一个(非Apple)库和OS X 10.11不兼容。 目前我正在安装苹果开发者工具的另一个更新,希望能够解决这个问题。 我会用我们的进展更新你。


更新2:

再次在PDF Labs的Sid Steward :

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

在这里输入图像描述

上面的快照是试图在OS X 10.11上运行当前在我们站点上的pdftk二进制文件。 上面提到的libgcj库带有pdftk,其他的是OS X库。

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


更新3:

MacPorts正在使用PDFtk处理构build问题,这是该线程的更新 (注意:这与PDFtk实验室无关):

这是由于在10.11中使用Apple Clang 7进行了libunwind的重新编译,产生了新的有效优化(根据苹果公司的说法),这使得FSF boehm-gc发现了一个未知的bug。

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

不要指望苹果有任何修正,因为他们无法触及GPLv3代码来查看FSF的boehm-gc问题(除非他们使用的gcc43包仍然是GPLv2)。 这个问题是由libunwind的重新编译触发的,这个事实表明,用10.10replacelibunwind.dylib消除了boehm-gc和gcj失败。

请注意,这是提交作为radr:// 21372179,“build立在10.10上的FSF boehm-gc库未能在10.11上通过它的testing”,但作为FSF boehm-gc错误而closures。


更新4:

MacPortsfind了解决构build问题的方法,这是该线程的更新

附加的Portfile.diff(当在修复gcj的#49227上提议的gcc5更新中使用时)解决了pdftk的构build问题。


更新5:

PDF Labs的Sid Steward有一个成功的构build,他的反馈意见是:

MacPorts gcc5的一个修复允许我build立一个工作pdftk合并在El Capitan的PDF文件。 该修补程序已添加到您发布到的工单中:

MacPorts的

我将在将其包装到安装程序之前,继续完全testing此pdftk。 这个过程可能需要几天时间。


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

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

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

如果您已经从旧的安装程序安装了pdftk,则应该在其之上安装pdftk,而不会出现任何问题 – 在安装此pdftk之前,不需要删除旧的pdftk。

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

请让我知道这是如何适用于你。

我想感谢Aaron打开这个线程,并且帮助我们关注构build工具的问题。 我也要感谢MacPorts团队的专业和及时的工作!

最好的祝福-

PDF实验室的Sid Steward

感谢github.com/quantiverge,pdftk应该在brew下安装。 这一个在OSX Sierra进行testing。

在terminal中运行以下内容。

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

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

如果您的系统上安装了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 pdftk ./pdftk --help

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

删除旧的pdftk版本; 从查找器中searchpdftk ,移动到垃圾箱,并完成pdftk_uninstall.sh。

 $ pdftk -version 

pdftk 2.02 a操作PDF文档的方便工具版权所有(c)2003-13pipe家和李,有限责任公司 – 请访问:www.pdftk.com这是自由软件; 请参阅复制条件的源代码。 没有任何保证,即使是适销性或特定用途的适用性。

第三编辑:以下是不是修复,而是变通办法,(因为有时候修复到几个月是不可行的)。


第二编辑: 相干PDF命令行工具 (又名cpdf )是免费的非商业用途,并可以授权商业用途。 它提供的function可以与pdtk相媲美,并且(至less在我的MacBook Pro上)似乎在El Capitan下运行良好。


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


出于某种目的,包含ghostscript —与LaTeX发行版一起发布,如texlive —为pdftk提供了类似的(但不太友好的)function。

例如,要从多页PDF文档中提取页面6-7:

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

上面的工作对我来说…你的里程可能会有所不同!

不用说,恢复pdftk在埃尔卡皮坦下的全部function会好得多… pdftk真的是一个了不起的效用。

解决方法:我们在8月份向Sid提出了这个问题,但他仍然没有解决这个问题,所以我认为公平地说,寻找替代品是个好主意。 因此,我们主动提交了一些人们可以免费享用的第一个工具,

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

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

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

编辑:添加有关这是一个解决方法的信息

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

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

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