我一直在使用PDFTKServer OSX pre 10.11超过一年没有任何问题在命令行上运行命令.
安装OSX 10.11 beta后,我无法再PDFTK在命令行上运行任何Server命令.它不会抛出任何错误,我尝试执行的所有命令都会无限期地挂起.
我PDFTK一直从服务器网站下载的pkg安装:
https://www.pdflabs.com/tools/pdftk-server/
我也尝试使用Homebrew从源代码安装.安装工作,但我得到相同的结果,命令只挂在终端:
我已经通过他们的反馈助手应用程序向Apple发送了投诉,该应用程序在两个月前安装测试版时安装,没有响应.
我被告知Apple反馈助理:
您可能永远不会收到回复.Apple仅通过反馈助手回复操作系统中需要其他信息的主要错误.它不是获得支持的一种方式,对第三方应用程序来说更是如此.
我还联系了包装的制造商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:
看起来有两个线程在pdftk下运行,并且它们已经死锁.这意味着每个线程都在等待另一个线程完成.我不是这里的专家,但那是我的印象.以下是来自Mac的Activity Monitor的截图,用于说明:
上面的快照来自于尝试在OS X 10.11上运行我们网站上当前的pdftk二进制文件.上面提到的libgcj库带有pdftk,其他的是OS X库.
正如我所说,我刚刚安装了Xcode 7.0.1,它于昨天在App商店发布.我现在将尝试使用这些工具来构建pdftk.
更新3:
MacPorts正在使用PDFtk解决构建问题,这是该线程的更新(注意:这与PDFtk Labs无关):
这是因为在10.11中使用Apple Clang 7重新编译了libunwind,产生了新的有效优化(根据Apple),它在FSF boehm-gc中发现了一个未知的错误.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66848
不要指望Apple有任何修复,因为他们无法触及GPLv3代码来查看FSF boehm-gc问题(除非他们使用的gcc43包应该仍然是GPLv2).这个问题是由重新编译libunwind引发的,这一事实表明,从10.10替换libunwind.dylib会消除boehm-gc和gcj失败.
请注意,这是作为radr:// 21372179提交的,"基于10.10构建的FSF boehm-gc库无法通过10.11的测试",但作为FSF boehm-gc错误关闭.
更新4:
PDFtk服务器似乎无限期地悬挂在MacOS Sierra上.看起来类似于El Capitan上的问题.
我正在尝试运行此命令:
pdftk test1.pdf test2.pdf cat output out.pdf verbose
Run Code Online (Sandbox Code Playgroud)
我没有输出,只是无限期挂起.和我试过的其他命令一样.
PDFtk --version:
pdftk 2.02用于处理PDF文档的便利工具版权所有(c)2003-13 Steward and Lee,LLC - 请访问:www.pdftk.com这是免费软件; 查看复制条件的源代码.对于适销性或特定用途的适用性,没有任何保证.
有没有人设法找到任何解决方法?
我使用pdftk使用以下命令行压缩pdf
pdftk file1.pdf output file2.pdf compress
Run Code Online (Sandbox Code Playgroud)
它的工作原理是我文件的重量减少了.
是否有[选项]来改变压缩???
或者也许压缩我的文件的其他解决方案?它很重,因为有些图形有很多要点.有没有办法将这些图转换为例如jpg并调整压缩?
如何轻松地将大型PDF拆分为两个(或更多)单独的PDF?
假设我们有foo-bar.pdf,foo部分来自第1-12页,部分栏是从第13页到结尾.我想把foo-bar.pdf分成foo.pdf和bar.pdf.
我想用MacPorts安装pdftk,但是这个命令不起作用:
sudo apt-get install pdftk
Run Code Online (Sandbox Code Playgroud)
可以在Mac上安装吗?
我的系统规格是:
Processor: 2.5 GHz Intel Core i5
Memory: 8 GB 1600 MHz DDR3
Graphics: Intel HD Graphics 4000 768 MB
Run Code Online (Sandbox Code Playgroud) 我想使用 pdftk 但我总是收到这个错误zsh: bad CPU type in executable: pdftk我重新安装了 pdftk 并且我将终端从 bsh 更改为 zsh,因为我在搜索如何解决此错误时发现但没有任何成功。我正在使用最新的 MacOS 版本“Catalina v10.15.4”
使用pdftk合并多个pdf正在运行良好.但是,为每个pdf合并制作书签的简单方法是什么?
我没有在pdftk文档中看到任何关于此的内容,因此我认为pdftk不可能.
我们合并的所有文件都是1页,所以想知道之后是否还有其他可以添加书签的实用程序?
或者另一个基于linux的pdf实用程序,允许在为每个单独的pdf指定书签时进行合并.
我正在尝试编写一个PHP脚本,该脚本使用pdftk应用程序将XFDF与PDF表单合并,并将合并的PDF输出给用户.根据pdftk文档,我可以在via中传递表单数据stdin并将PDF输出到stdout流中.从命令行使用pdftk的常规文件非流方式是:
pdftk blankform.pdf fill_form formdata.xfdf output filledform.pdf
Run Code Online (Sandbox Code Playgroud)
要在命令行上使用流,您需要输入:
pdftk blankform.pdf fill_form - output -
Run Code Online (Sandbox Code Playgroud)
我有几个问题:
1)我已经通过stdout使用xfdf文件(而不是stdin)来获得pdftk返回输出,如下所示:
exec("pdftk blankform.pdf fill_form formdata.xfdf output -", $pdf_output);
file_put_contents("filledform.pdf",$pdf_output);
Run Code Online (Sandbox Code Playgroud)
但是根据Adobe Reader的说法,它创建的pdf是破坏的,并且用文本编辑器快速查看文件显示,至少,它并没有将行结束设置在应有的位置.我有一个相同的PDF由pdftk创建,它输出到一个文件,pdf在文本编辑器中看起来很好,所以我知道它不是pdftk输出坏数据.
2)我不能为我的生活弄清楚如何stdin在PHP中设置流,以便我可以使用该流作为我的pdftk输入.从我在PHP文档中阅读的内容来看,它stdin是只读的,那么如何进入该流?
理想情况下,我想保持这个非常简单并避免使用proc_open().我尝试使用该功能并且不是非常成功,这可能是我的错,而不是功能,但实际上我的目标很简单,我宁愿避免使用我不需要的强大功能.
理想情况下,我的代码看起来像:
$form_data_raw = $_POST;
$form_data_xfdf = raw2xfdf($form_data_raw); //some function that turns HTML-form data to XFDF
$blank_pdf_form = "blankform.pdf";
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="output.pdf"');
passthru("pdftk $blank_pdf_form fill_form $form_data_xfdf output -);
Run Code Online (Sandbox Code Playgroud)
只是抬头,可以将实际的xml字符串放在命令行中,但是我的结果非常不可靠.
在很多帮助下,我现在明白我的真正问题是"如何在PHP中将变量传递给命令行执行".显然,proc_open是最好的方式,或者至少是最直接的方式.因为我花了很长时间才弄清楚,因为我对Google的研究表明其他人可能会苦苦挣扎,我会发布专门针对我的问题的代码:
$blank_pdf_form = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PDFTK来旋转PDF文档中的页面.执行类似下面的操作应该不会导致页面轮换更改:
pdftk in.pdf cat 1N output out.pdf
Run Code Online (Sandbox Code Playgroud)
(这是向第1页"北"或"0度"旋转.)
在某些PDF测试文档中,它按预期工作(意味着,不会对页面进行任何更改).但是,在某些测试文档中,PDF文档旋转了90度.我尝试做的任何页面旋转都会持续应用90度.所以,如果我这样做:
pdftk in.pdf cat 1E output out.pdf
Run Code Online (Sandbox Code Playgroud)
(这是旋转页面1"东"或"90度.")结果是页面旋转180度 - 额外90度!
在Acrobat Reader中查看时,PDF看起来没问题.
这些问题测试PDF文档的唯一区别是我使用Acrobat Pro已经改变了它们的轮换.在这些已经旋转的PDF文档上应用PDFTK页面动作时,我遇到了这个问题.
知道发生了什么事吗?
pdftk ×10
pdf ×5
macos ×3
linux ×2
acrobat ×1
command-line ×1
compression ×1
homebrew ×1
macos-sierra ×1
php ×1
stdin ×1
stream ×1
terminal ×1