我正在使用Linux服务器并且正在尝试安装Pdftk,但我在试图弄清楚究竟要做什么时遇到了问题。
我找到了以下关于如何安装它的文档,但它们主要是指在本地Windows机器上安装它。
他们是: http://www.andrewheiss.com/blog/2009/07/29/installing-pdftk-php/
http://www.accesspdf.com/pdftk/#packages
有人可以帮我解决我需要在服务器上放置哪些文件以便我可以参考pdftk吗?
答案 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文件。