问题标签 [pdftk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1215 浏览

php - 在 Linux 服务器上安装 Pdftk

我一直在我的 Windows 本地机器上使用 pdftk.exe 来玩一些 pdf 并且工作正常。我想将它上传到我的 Linux 服务器。在搜索时,我发现我必须在服务器本身上安装 pdftk 作为 Red Hat 的编译包。我怎样才能做到这一点 ??谁可以帮我这个事??

0 投票
3 回答
6908 浏览

php - 将 XFDF 与 PDF 表单合并以创建最终的 PDF 服务器端?

这是我目前拥有的:

  • 用户提交表单数据并获得“下载 PDF”链接。

  • 该链接指向动态生成 XFDF 文件并在设置适当的标头等后输出 XFDF 文件的脚本。

  • XFDF 文件指向受密码保护的 PDF,这是使用 XFDF 数据填写字段的通用 PDF 表单。

我想要什么:

  • 用户单击“下载 PDF”链接。

  • XFDF 是动态生成的(没有文件写入服务器)。

  • PDF 和 XFDF 使用通用 PDF 在服务器端合并。最终 PDF 的内容与最初的 XFDF 一样输出给用户。

  • XFDF 和最终的 PDF 都不会保存到服务器。

我在看pdftk,它有一些处理 FDF/XFDF 文件的选项,但所有这些都假设 a) 原始 XFDF 文件作为文件存在于服务器上,并且 b) 生成的 PDF 应该输出为服务器上的文件。

此外,pdftk 已经 4 岁了。

我想知道是否:

a) 那里有与 pdftk 等效的更新版本吗?

b) 如果有一种方法,使用较新的类似 pdftk 的工具或使用 pdftk,使用动态路径,这样数据就不必以文件形式存在于服务器上?

我最近了解了使用的内置输入/输出流,php://但我仍然对如何使用它很模糊,但也许这将是一个好地方?

0 投票
2 回答
1032 浏览

java - 在没有 gcj 的情况下结合 Java 和 C——将 C 移到 Java 或 Java 到 C?

首先,我没有这样做的经验。但是就像任何好的程序的开始一样,我有需要解决的问题,所以我愿意学习。

你们中的许多人可能已经熟悉 pdftk,它是处理各种 pdf 相关任务的便捷实用程序。据我所知,这些功能中的大多数都可以在更新、更轻的库/扩展中使用,除了我需要的(并且可能是它仍然存在的唯一原因):将表单数据文件(fdf 和 xfdf)与表单合并PDF 并获取一个新文件作为输出。

问题是我的服务器没有 gcj,这是构建/编译 pdftk 的基础。我不知道是因为我在 Solaris 上还是因为其他一些系统管理员级别的原因,但我不会很快得到 gcj。据我所知,没有为 Solaris 预编译的二进制文件。

所以我认为可以重写MAKE文件和C代码以直接通过javac导入Java库(非常古老的itext版本)。

但我不确定从哪里真正开始。我所知道的是:

  1. 完成后我想要一个二进制文件,这样每次使用都不需要 Java VM。
  2. 当前应用程序使用 GCJ。

所以我的第一个想法是“哦,这很容易,我可能可以用其他一些基于 C 的方法来调用这些类”,但是我没有找到一个简单的方法来做到这一点,而是在各个角度找到了大量冗长的帖子这可以接近,等等。

然后我在 Sun 的网站上找到了一个关于如何在 Java 类中调用其他语言(如 C)的页面。但这种方法的问题是:

  1. 我必须为包装器写一个包装器
  2. 我最好跳过那部分并用Java编写整个东西
  3. 如果我可以导入已有的类,我还没有准备好
  4. 我不清楚我是否可以在最后编译并获得一个二进制文件,或者我是否被困在每次都需要 Java 中。

再次,我为我的无知道歉。我只需要一些建议和示例,说明如何将依赖 GCJ 的 C 代码替换为直接与 Java 一起工作的代码。

当然,如果我要问“如果我们能做到这一点,我们就已经很有钱了”类型的问题,请告诉我。

0 投票
2 回答
25731 浏览

php - 如何将变量作为标准输入从 PHP 传递到命令行

我正在尝试编写一个使用pdftk应用程序将 XFDF 与 PDF 表单合并并将合并的 PDF 输出给用户的 PHP 脚本。根据 pdftk 文档,我可以通过传递表单数据stdin并将 PDF 输出到stdout流中。从命令行使用 pdftk 的正常文件非流方式是:

要在命令行上使用流,您需要输入:

我有几个问题:

1)我已经让 pdftk 通过stdout使用 xfdf 文件(而不是stdin)返回输出,如下所示:

但它创建的 pdf 文件已损坏,根据 Adob​​e Reader 的说法,使用文本编辑器快速查看文件表明,至少,它没有将行尾设置在应有的位置。我有一个由 pdftk 创建的相同 PDF,它输出到一个文件,并且 pdf 在文本编辑器中看起来很好,所以我知道不是 pdftk 输出了错误的数据。

2)我一生都无法弄清楚如何stdin在 PHP 中设置流,以便我可以使用该流作为 pdftk 的输入。从我在 PHP 文档上阅读的内容来看,stdin它是只读的,那么任何东西是如何进入该流的呢?

理想情况下,我想保持这个非常简单并避免使用proc_open(). 我尝试使用该功能但不是很成功,这可能是我的错,而不是功能的错,但实际上我的目标很简单,我宁愿避免使用我不需要的强大功能。

理想情况下,我的代码如下所示:

请注意,可以将实际的 xml 字符串放在命令行中,但我得到的结果非常不可靠。

编辑

在很多帮助下,我现在明白我真正的问题是“如何通过管道将变量传递给 PHP 中的命令行执行”。显然 proc_open 是最好的方法,或者至少是最直接的方法。由于我花了很长时间才弄清楚这一点,而且我对 Google 的研究表明其他人可能正在苦苦挣扎,我将发布专门解决我的问题的代码:

0 投票
12 回答
23075 浏览

linux - 将 PDF 与 PDFTK 与书签合并?

使用 pdftk 合并多个 pdf 效果很好。但是,有什么简单的方法可以为每个合并的 pdf 添加书签吗?

我在 pdftk 文档上没有看到任何关于此的内容,所以我认为 pdftk 不可能。

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

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

0 投票
1 回答
5789 浏览

php - 通过 PHP 将元数据添加到 PDF

在 PHP (5.3) 中下载时,我需要使用自定义元数据字段来扩充 PDF。

我一直在查看pdftk库,但我无法理解如何让 PHP 在我们的 (Ubuntu) Web 服务器上与其交互。

已弃用的 PDFInfo 库似乎是一条死胡同。

有没有更简单/更容易/更好的解决方案?

谢谢

0 投票
2 回答
32554 浏览

pdf - PDFTK 旋转页面问题

我正在尝试使用 PDFTK 来旋转我的 PDF 文档中的页面。执行类似下面的操作应该不会改变页面旋转:

(这是将第 1 页旋转“北”或“0 度”。)

在某些 PDF 测试文档中,它按预期工作(这意味着页面不会发生任何更改)。但是,在某些测试文档上,PDF 文档会旋转 90 度。额外的 90 度始终应用于我尝试做的任何页面旋转。所以,如果我这样做:

(这是将第 1 页“向东”或“90 度”旋转。)结果是页面被旋转了 180 度——额外的 90 度!

在 Acrobat Reader 中查看时,PDF 看起来不错。

这些问题测试 PDF 文档的唯一区别是我使用 Acrobat Pro 已经更改了它们的旋转。在这些已经旋转的 PDF 文档上应用 PDFTK 页面旋转时,我遇到了这个问题。

知道发生了什么吗?

0 投票
4 回答
27361 浏览

php - 如何在我的服务器上安装 Pdftk?

我正在使用 Linux 服务器并尝试安装 Pdftk,但我在试图弄清楚到底要做什么时遇到了问题。

我找到了有关如何安装它的以下文档,但它们主要指的是在本地 Windows 机器上安装它。

它们是: http ://www.andrewheiss.com/blog/2009/07/29/installing-pdftk-php/

http://www.accesspdf.com/pdftk/#packages

有人可以帮我弄清楚我需要将哪些文件放在我的服务器上以便我可以参考 pdftk 吗?

0 投票
2 回答
760 浏览

pdf - 在单个页面中克隆 PDF 文件

我有一个 PDF 文件,它的大小正好是 A4 页面的 1/5,还有一个脚本可以通过重复附加将其转换为单个 A4 页面。问题是 ImageMagick 仅适用于位图图形,而我的 PDF 包含文本和详细的矢量图形。因此,结果是文本数据丢失,文件更大,打印输出更差。

我希望能够在convert -density 1200 $pdf_file $pdf_file $pdf_file $pdf_file $pdf_file +append $a4_file 不光栅化矢量图形的情况下做与线条相同的事情。

0 投票
2 回答
5445 浏览

php - 从 PHP 脚本执行 PDFTk 失败,错误代码为 11

我正在尝试从 PHP 脚本填写 PDF。我在以下URL关注Sid Steward的文章。

我已经在CentOS linux 发行版上配置了 PDFTk包,我能够从命令提示符执行 pdftk,它将 FDF 表单与 PDF 合并并成功生成扁平(填充)PDF。我正在使用以下命令使用 shell 测试 Pdftk。

但是当尝试通过 PHP 执行类似的命令时,我得到了错误。passthru命令失败,错误代码为11。以下是我用来执行命令的 php 代码:

上面的$fdf_fn有 FDF 文件名。form.pdf是填写的 pdf 表单。我提供上述代码行的form.pdf和 PHP 脚本文件都在同一个文件夹中。我通过回显shell_exec('pdftk')检查了 PDFtk 是否通过 PHP 正确执行,并且它返回了标准帮助详细信息。

只是为了提供更多详细信息,pdftk 的路径是/usr/bin/并且 PHP 脚本和 PDF 表单文件位于/var/www/html/pdfmerge 下

有人可以指导我做错了什么,通过 PHP 执行命令失败并出现错误代码 11?