标签: pdftk

OS X 10.11上的PDFtk服务器

我一直在使用PDFTKServer OSX pre 10.11超过一年没有任何问题在命令行上运行命令.

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

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

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

我也尝试使用Homebrew从源代码安装.安装工作,但我得到相同的结果,命令只挂在终端:

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:

Sid Steward再次访问PDF实验室:

看起来有两个线程在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:

MacPorts找到了解决构建问题的方法,这是该线程的 …

pdf macos homebrew pdftk osx-elcapitan

158
推荐指数
4
解决办法
3万
查看次数

PDFtk挂在MacOS Sierra上

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 macos-sierra

95
推荐指数
1
解决办法
1万
查看次数

pdftk压缩选项

我使用pdftk使用以下命令行压缩pdf

pdftk file1.pdf output file2.pdf compress
Run Code Online (Sandbox Code Playgroud)

它的工作原理是我文件的重量减少了.

是否有[选项]来改变压缩???

或者也许压缩我的文件的其他解决方案?它很重,因为有些图形有很多要点.有没有办法将这些图转换为例如jpg并调整压缩?

compression pdftk

85
推荐指数
6
解决办法
11万
查看次数

将PDF拆分为两部分

如何轻松地将大型PDF拆分为两个(或更多)单独的PDF?

假设我们有foo-bar.pdf,foo部分来自第1-12页,部分栏是从第13页到结尾.我想把foo-bar.pdf分成foo.pdf和bar.pdf.

pdf pdftk

62
推荐指数
4
解决办法
5万
查看次数

如何在Mac OS X上安装pdftk

我想用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)

macos pdftk

59
推荐指数
3
解决办法
6万
查看次数

使用PDFtk删除pdf文件的最后一页?

有人可以告诉我如何使用PDFtk删除PDF文件的最后一页?

linux pdf pdftk

43
推荐指数
3
解决办法
2万
查看次数

如何在 Mac 上解决“pdftk:可执行文件中的 CPU 类型错误”?

我想使用 pdftk 但我总是收到这个错误zsh: bad CPU type in executable: pdftk我重新安装了 pdftk 并且我将终端从 bsh 更改为 zsh,因为我在搜索如何解决此错误时发现但没有任何成功。我正在使用最新的 MacOS 版本“Catalina v10.15.4”

macos terminal pdftk

37
推荐指数
3
解决办法
1万
查看次数

将PDF与PDFTK合并为书签?

使用pdftk合并多个pdf正在运行良好.但是,为每个pdf合并制作书签的简单方法是什么?

我没有在pdftk文档中看到任何关于此的内容,因此我认为pdftk不可能.

我们合并的所有文件都是1页,所以想知道之后是否还有其他可以添加书签的实用程序?

或者另一个基于linux的pdf实用程序,允许在为每个单独的pdf指定书签时进行合并.

linux pdf pdf-generation pdftk ghostscriptsharp

33
推荐指数
4
解决办法
2万
查看次数

如何将变量作为stdin从PHP传递到命令行

我正在尝试编写一个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)

php command-line stdin stream pdftk

28
推荐指数
1
解决办法
2万
查看次数

PDFTK旋转页面问题

我正在尝试使用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页面动作时,我遇到了这个问题.

知道发生了什么事吗?

pdf acrobat pdftk

23
推荐指数
2
解决办法
2万
查看次数