如何使用打补丁的 qt 安装 wkhtmltopdf?

How to install wkhtmltopdf with patched qt?

我想把html转成pdf,我用的是wkhtmltopdf。

但是打印尺寸比我想象的要小。 我想尝试 --disable-smart-shrinking 选项,但出现

之类的错误
$ xvfb-run -- /usr/bin/wkhtmltopdf --disable-smart-shrinking $INPUT $OUTPUT
The switch --disable-smart-shrinking, is not support using unpatched qt, and will be ignored.Loading page (1/2)
Printing pages (2/2)
Done

也许我必须安装带有补丁qt的wkhtmltopdf,但我不知道如何安装。

我看到了以下尺寸,但是 gitorious.org 不起作用。

wkhtmltopdf patched qt?

我的OS是Ubuntu14.04,wkhtmltopdf版本是0.12.2.1

如果您知道打印较小的其他原因,请告诉我。谢谢。

您可以使用 --disable-smart-shrinking 选项安装 wkhtmltopdf wkhtmltopdf.

下载并安装。

http://wkhtmltopdf.org/usage/wkhtmltopdf.txt

文档说

wkhtmltopdf 0.12.2.1 (with patched qt)

--disable-smart-shrinking Disable the intelligent shrinking strategy used by WebKit that makes the pixel/dpi ratio none constant

这个简单的解决方案(不需要安装 xvfb,既不需要编译 QT,也不需要 wkhtmltopdf)在我的 Debian Jessie 服务器上非常有效:

cd mytmpfolder
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo mv wkhtmltox/bin/wkhtmlto* /usr/bin/
#create simple html test file
echo "<html><body>test</body></html>" >> test.html
#perform conversion
sudo wkhtmltopdf  --disable-smart-shrinking  --lowquality --enable-external-links --enable-internal-links test.html test.pdf

在 Ubuntu 16.04.

上安装版本 0.12.3 的步骤

因为我浪费了太多时间来追踪它,这里是给其他绊脚石的人:

cd ~
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 
cp wkhtmltox/bin/wk* /usr/local/bin/

您可以通过以下方式确认:

$ wkhtmltopdf --version
wkhtmltopdf 0.12.3 (with patched qt)

顺便说一句,我选择了 0.12.3 而不是 0.12.4,因为讨论了一个奇怪的页面大小问题 here

以下是使用 shell 脚本为 Ubuntu 14.04、15.04、16.04、18.04 和 20.04 安装 wkhtmltopdf 0.12.5(带有修补的 qt)的简单步骤。

第 1 步。创建一个 shell 文件

cd /tmp && nano install_wkhtmltopdf.sh

第 2 步。粘贴以下代码

WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb
WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_i386.deb

sudo apt-get install wget git python-pip gdebi -y

if [ "`getconf LONG_BIT`" == "64" ];then
  _url=$WKHTMLTOX_X64
else
  _url=$WKHTMLTOX_X32
fi
sudo wget $_url
sudo gdebi --n `basename $_url`
sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin
sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin

步骤 3. 使文件可执行

sudo chmod +x install_wkhtmltopdf.sh

步骤 4. 执行 shell 脚本

./install_wkhtmltopdf.sh