在 Mac OS X 上执行任何命令时出现 PDFtk 错误

3
我们已经在Mac OS X 10.10和Ubuntu 12以及Ubuntu 14上安装了PDFTK服务器版。但是,在尝试为任何PDF执行dump_data_fields操作时,似乎会在执行该操作之前抛出奇怪的错误。 $ pdftk SchoolPermissionSlip.pdf dump_data_fields dyld: _dyld_bind_fully_image_containing_address() error dyld: Symbol not found: ___emutls_get_address Referenced from: /opt/pdflabs/pdftk/bin/../lib/libgcj.11.dylib Expected in: /usr/lib/libSystem.B.dylib in /opt/pdflabs/pdftk/bin/../lib/libgcj.11.dylib Trace/BPT trap: 5
这是最新版本。有什么想法吗? pdftk --version pdftk 2.02,一个方便操作PDF文档的工具。 版权所有(c)2003-13 Steward和Lee,LLC - 请访问:www.pdftk.com。 这是免费软件;请查看源代码以了解复制条件。没有任何保证,包括适销性或特定用途的适用性。

它在Ubuntu上能用,但在OS X上不能用?!?另外,没有Ubuntu 12或Ubuntu 14。它的版本信息带有一个额外的月份,例如12.0412.1014.0414.10... - Kurt Pfeifle
2个回答

7

我们曾经在Mac OS X上不时地看到这个错误报告。

___emutls_get_address符号由pdftk自己的libgcc_s.1.dylib提供。在OS X上,pdftk库的默认位置是/opt/pdflabs/pdftk/lib,pdftk二进制文件的默认位置是/opt/pdflabs/pdftk/bin/pdftk。如果您移动了此pdftk二进制文件,则重要的是将其库与之一起移动,以便pdftk的bin目录仍然与此lib目录同级。这有助于确保二进制文件可以找到其库。也许您的pdftk二进制文件已被移动,但没有同时移动这些库?

无论如何,我们有一个解决方案,对其他人也有效。

阅读dyld man页面,DYLD_LIBRARY_PATH环境变量可用于为pdftk的库提供优先级。从终端运行:

export DYLD_LIBRARY_PATH=/opt/pdflabs/pdftk/lib:$DYLD_LIBRARY_PATH

然后测试pdftk:
pdftk input.pdf dump_data_fields output data.txt

0

这是在OS X 10.11上安装PDFtk服务器的副本,但我们也在此发布我们的回应:

我们在八月份向Sid提出了这个问题,但他仍未解决,因此我认为寻找替代方案是一个好主意。因此,我们已经采取了主动措施,在以下存储库中提交了一些人们可以免费使用的第一批工具:

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

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

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


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