OS X 10.11上的PDFtk服务器


162

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

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

PDFTK总是从服务器网站上下载的pkg安装:

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

我也尝试过使用Homebrew从源代码安装。安装有效,但得到的结果相同,命令仅挂在终端上:

自制水龙头

我已经通过他们的“反馈助手”应用程序将投诉发送给了Apple,该应用程序在两个月前安装Beta时已安装,但没有任何回复。

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

您可能永远不会收到回应。Apple仅通过Feedback Assistant对需要其他信息的操作系统重大错误进行答复。这不是获得支持的方法,对于第三方应用程序则更是如此。

我也联系了软件包制造商PDF Labs,但没有回复。

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

我在网上搜索了有关可能导致此问题的原因以及如何解决该问题的线索,但没有发现任何实质性的信息。

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

排除根本原因或提供修复的任何帮助,将不胜感激。


更新1:

在PDF实验室收到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库。

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


更新3:

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

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

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

不要指望Apple提供任何修复程序,因为他们无法接触GPLv3代码来查看FSF boehm-gc问题(除非他们使用了仍为GPLv2的gcc43软件包)。该事实由libunwind的重新编译触发,这一事实表明,从10.10替换libunwind.dylib可以消除boehm-gc和gcj失败。

请注意,文件归档为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的修复程序使我可以构建可工作的pdftk,以合并El Capitan上的PDF。该修复程序已添加到您已发布到的故障单中:

MacPorts

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



1
付费支持可以使您更快地从PDF Labs获得响应。
hrbrmstr

2
homebrew是整个构建过程的25%。我会让你知道怎么回事。
hrbrmstr

1
在构建@hrbrmstr上取得任何进展吗?
亚伦

1
我想到了PDF Labs的付费支持。如果收到回复电子邮件,我会尝试询问。
亚伦

2
很好的问题@AlexWood。据我所知,PDF实验室正在解决该问题,但没有公共错误跟踪器。如果您发现其他情况,我将相应地更新正文。
亚伦

Answers:


254

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

最好的祝福-

Sid Steward,PDF实验室


13
有自制的水龙头,我们可以用来做这个吗?
Dan2552 2015年

1
感谢您提供此功能。它解决了我遇到的问题pdftk。FWIW,安装程序有两个问题,第一个(次要)问题是未签名。第二个是它将链接安装到中/usr/share/man/man1。实际上,对于El Capitan的系统完整性保护允许这样做,我感到有些惊讶,因为我认为它是系统目录。放置手册页链接(以镜像/usr/local/bin可执行文件的链接)的正确位置是/usr/local/share/man/man1
Charphacy

10
请注意,该 pdftk主页尚未更新,因此,即使您已经从该网页安装了2.02版,也需要使用此答案中的文件来重新安装它。
nip3o 2015年

10
这是一个很棒的更新!您可以更新您的网站以包含它吗?
Blairg23

12
感谢您的修复并响应此线程。我今天从您的网站下载了适用于OSX El Capitan的PDFtk,它已按照本主题中的描述挂起。pdftk --version从下载中报告的版本为2.02。我刚刚在此响应中下载了链接的参考,报告的版本也为2.02,但未挂起。您可能想在pdflabs.com/tools/pdftk-server上
Alexander Rolek

48

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

在终端中运行以下命令。

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

更新了github.com/zph中的修复程序-谢谢!


如果采用自制路线,则上述方法不能完全起作用。删除depends_on :macos => :lion并替换@tarball_path为下载的路径。脚本崩溃后,下载应位于:中$HOME/Library/Caches/Homebrew/downloads/。调整后,它应该可以在High Sierra 10.13.6上正常工作。
罗伯特·布里斯塔

11

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. 不要使用启动板执行此操作。启动板不允许您访问快捷菜单。

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

  4. 单击打开。

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

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

不工作:

以下Brew命令DID对我不起作用:

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

它给出了以下错误:

执行时失败;/usr/bin/xar -xf /xxxx/Library/Caches/Homebrew/downloads/\#\{url_sha256\}--\*以1.退出。

祝好运!


2
上面的链接pdflabs.com/tools/pdftk-the-pdf-toolkit/…似乎在Mac OS Catalina(10.15)上生成了可运行的pdftk。
伊万·库曼诺夫

1
@IvanKurmanov谢谢您的输入,我将其添加到答案
学习者

大!!这真的救了我。我快要放弃pdf_forms gem并寻求其他解决方案。
killerkiara

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


@obh的答案在Sierra中对我有用,但我也感谢拥有docker解决方案。特别像您使用高山的事实一样:)
Henry Schreiner

如果我想在容器中运行该映像该怎么办,我是否必须更新Dockerfile?
史蒂文·阿吉拉尔

3

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

删除旧的pdftk版本;从查找程序中搜索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
Rho Phi


1

第三修改: 以下不是修复程序,而是解决方法(`cuz有时等待几个月的修复程序才能实现)。


第二次编辑: 相干PDF命令行工具(aka cpdf)免费用于非商业用途,并且可以许可用于商业用途。它提供的功能可pdtk与El Capitan 媲美并且(至少在我的MacBook Pro上)运行正常。


编辑:StackOverflow答案告诉您如何使用ghostscript串联文件,从而提供(笨拙)类似于的功能"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}" ;

以上为我工作...您的里程可能会有所不同!

不用说,恢复pdftkEl Capitan的全部功能会更好…… pdftk确实是一个了不起的实用程序。


1

解决方法: 我们在8月份将这个问题提交给Sid,他仍然没有解决它,因此我认为应该说是寻找替代方案的好主意。因此,我们已主动提交了一些人们可以在以下存储库中免费使用的第一个工具:

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

它包含用于CAT和BURST的易于使用的脚本。我们打算继续增加更多的工具。随时贡献

这些新工具正在使用本机OSX库,并且不需要任何第三方依赖项。好极了!

编辑:添加了有关此解决方法的信息


1
非常欢迎您将这些工具提交到存储库。在添加和删除的同时添加水印和串联应该不难。
FlowPaper小组2015年

1

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

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.