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

时间:2010-06-30 05:49:22

标签: php linux pdftk

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

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

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

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

有人可以帮我解决我需要在服务器上放置哪些文件以便我可以参考pdftk吗?

2 个答案:

答案 0 :(得分:15)

Pdftk是iText的一个版本,它已经从Java转换为c ++,并通过命令行桥重建,以便从PHP应用程序轻松访问。

要在Redhat / CentOS上构建pdftk,请按照以下说明操作。

ssh [server to install pdftk on]

现在我们在服务器中,我们需要创建存储pdftk的目录。

cd /
sudo mkdir extra
cd extra
sudo mkdir src
cd src
sudo wget http://www.pdfhacks.com/pdftk/pdftk-1.41.tar.gz
sudo tar zxvf pdftk-1.41.tar.gz
cd pdftk-1.41/pdftk

现在我们需要安装gcj库。

sudo yum install java-1.4.2-gcj-compat-devel.i386

gcc-c ++库没有安装gcj包,所以我们现在就安装它,所以我们在编译过程的中途不会收到错误。

sudo yum install gcc-c++

如果您现在编译应用程序,您将收到一条警告,指出tmpnam使用起来很危险,您应该使用mkstemp。

sudo vi report.cc

从VI内部运行,进行搜索并替换tmpnam方法。

:%s/tmpnam(/mkstemp(/g

按转义并使用

保存更改
:wq!

现在我们已经安装了所有软件包,我们将开始编译pdftk-1.41

来自/extra/src/pdftk-1.41/pdftk运行以下命令

sudo make -f Makefile.RedHat

这将启动用于编译和将java文件转换为c ++的构建过程。这可能需要几分钟才能将iText转换为c ++。在休息室里,从我们新的玛格丽塔机器上拿自己的玛格丽塔酒吧:)。

现在创建了pdftk文件,我们希望将它复制到/ bin目录,以便我们可以从任何地方运行它。

sudo cp pdftk /usr/local/bin

让我们确保构建成功并运行

pdftk --version

答案 1 :(得分:1)

截至2020年,现在情况有所不同。 CentOS 6正在逐步退出,而pdftk仅支持CentOS 5/6。 CentOS 7上的GCJ已删除,因此从源代码安装也不容易。但是我们现在有了码头工人:

FROM centos:centos6
RUN yum install -y https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm

然后使用docker build . -t pdftk构建并运行为:

docker run -it --rm -v $PWD:/data --workdir /data pdftk pdftk ./input.pdf output ./output.pdf

如果幸运的话,上面的示例可以修复丢失了数十KB数据的pdf文件。