我已经尝试了所有方法来得到 wkhtml转pdf 安装在我们的网络服务器上,但不幸的是它没有安装。我无法访问 user/bin 文件夹,如安装教程中所述。

在服务器上 公共_html 文件夹中有一个子文件夹 _vti_bin, ,我复制了文件 wkhtmltopdf-i386wkhtmltopdf-0.9.1-static-i386, ,但我无法执行它。

如何安装 wkhtml转pdf 在(共享托管)网络服务器上并使其正常工作?

有帮助吗?

解决方案

我已成功在我的共享托管帐户上安装 wkhtmltopdf-amd64,无需 root 访问权限。

这就是我所做的:

从这里下载了相关的静态二进制文件 v0.10.0: http://code.google.com/p/wkhtmltopdf/downloads/list

编辑:以上已移至 这里

通过我的共享主机上的 ssh 输入以下内容:

$ wget {relavant url to binary from link above}
$ tar -xvf {filename of above wget'd file}

然后,您的主机上就会有该二进制文件,并且无论它是否位于 /usr/bin/ 文件夹中,都可以运行它。(或者至少我能够)

去测试:

$ ./wkhtmltopdf-amd64 http://www.example.com example.pdf
  • 请注意,请记住,如果您位于可执行文件所在的文件夹中,则可能应该在其前面加上 ./ 只是要确定。

无论如何为我工作

其他提示

如果您有sudo访问...

的Ubuntu 14.04 / 15.04 / 18.04:

sudo apt-get install wkhtmltopdf
# or
sudo apt install wkhtmltopdf

其他

看其他的答案。

如果它的Ubuntu则与此先走,已经测试: - 。

第一,安装依赖

sudo aptitude install openssl build-essential xorg libssl-dev

为64bits的OS

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

有32位OS

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2 
tar xvjf wkhtmltopdf-0.9.9-static-i386.tar.bz2
 mv wkhtmltopdf-i386 /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

有机会,没有完全访问此服务器(由于被托管账户),你将有问题。我会走这么远的说,我认为这是徒劳的努力 - 他们必须锁定服务器下来是有原因的托管环境

打电话给你的托管公司,并要求他们安装它,但不要指望一个很好的回应 - 他们通常不会,除非有很好的理由(错误修复安装单个用户来说是非常自定义项目例子)。

最后,这取决于你是多么熟悉的服务器管理和您支付现在服务器托管考虑像 HTTP内容: //www.slicehost.com 。每月$ 20进行给你一个低等级的网络服务器(256 RAM),你可以安装你想要的任何东西。但是,如果您正在运行多个站点或有重负载,因为你需要更大的服务器的成本就上去了。

GL!

<强>的Debian 8杰西结果 这工作 sudo apt-get install wkhtmltopdf

将 wkhtmltopdf 可执行文件放在服务器上并对其进行 chmod +x。

创建一个可执行的 shell 脚本wrapp.sh,其中包含:

#!/bin/sh
export HOME="$PWD"
export LD_LIBRARY_PATH="$PWD/lib/"
exec $@ 2>/dev/null
#exec $@ 2>&1 # debug mode

下载该架构所需的共享对象并将它们放置在名为“lib”的文件夹中:

  • lib/libfontconfig.so.1
  • lib/libfontconfig.so.1.3.0
  • 库/libfreetype.so.6
  • 库/libfreetype.so.6.3.18
  • lib/libX11.so.6 lib/libX11.so.6.2.0
  • lib/libXau.so.6 lib/libXau.so.6.0.0
  • lib/libxcb.so.1 lib/libxcb.so.1.0.0
  • lib/libxcb-xlib.so.0
  • lib/libxcb-xlib.so.0.0.0
  • lib/libXdmcp.so.6
  • lib/libXdmcp.so.6.0.0
  • lib/libXext.so.6 lib/libXext.so.6.4.0

(其中一些是符号链接)

……你就可以开始了:

./wrap.sh ./wkhtmltopdf-amd64 --page-size A4 --disable-internal-links --disable-external-links "http://www.example.site/" out.pdf

如果您遇到字体问题,例如所有字符都是正方形,请显式定义 TrueType 字体:

@font-face {
  font-family:Trebuchet MS;
  font-style:normal;
  font-weight:normal;
  src:url("http://www.yourserver.tld/fonts/Trebuchet_MS.ttf");
  format(TrueType);
}

稳定版本wkhtmltopdf列表: http://wkhtmltopdf.org/downloads.html

在Debian 8.2安装wkhtmltopdf(杰西)64:

sudo apt-get install xfonts-75dpi
sudo apt-get install xfonts-base
sudo wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-jessie-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-jessie-amd64.deb

一个几件事情已经改变,因为加入的顶部的答案。他们曾经工作了,对我来说不是很了,所以我一直在围绕盗号了一下,用以下解决方案来弥补的Ubuntu 16.04 。为Ubuntu 14.04,请参阅答案底部的评论。如果这个道歉不适合共享主机的工作,但似乎这是一般wkhtmltopdf安装说明goto语句回答。

# Install dependencies
apt-get install libfontconfig \
    zlib1g \
    libfreetype6 \
    libxrender1 \
    libxext6 \
    libx11-6

# TEMPORARY FIX! SEE: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3001
apt-get install libssl1.0.0=1.0.2g-1ubuntu4.8
apt-get install libssl-dev=1.0.2g-1ubuntu4.8

# Download, extract and move binary in place
curl -L -o wkhtmltopdf.tar.xz https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xf wkhtmltopdf.tar.xz
mv wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
chmod +x /usr/local/bin/wkhtmltopdf

测试出来:

wkhtmltopdf http://www.google.com google.pdf

您现在应该有一个在当前工作目录中名为google.pdf文件。

该方法从下载网站上的二进制文件,这意味着你可以使用,而不是依赖于包管理器进行更新的最新版本。

请注意,作为今天,我的解决方案包括到这个错误临时修复 。我认识到,解决的办法是真的不是很大,但希望它很快就可以去除。 一定要检查链接GitHub的问题的状态,看看当你读这个答案的修复仍是必要的!

有关的Ubuntu 14.04,则需要降级到不同版本的libssl的。您可以这里找到的版本。不管怎样,可以肯定的任何生产服务器上这样做之前要考虑的libssl降级的影响。

我希望这可以帮助别人!

尝试,以下命令为我工作后

cd ~
yum install -y xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 openssl git-core fontconfig
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
mv wkhtmltox/bin/wkhtmlto* /usr/bin

感谢和问候

Jaiswar VIPIN库马尔R上。

共享主机没有 ssh 或 shell 访问权限?

我是这样做的;

  1. 访问 https://wkhtmltopdf.org/downloads.html 并下载适合 Linux 的稳定版本。对于我的情况,我选择了32位,即wkhtmltox-0.12.4_linux-generic-i386.tar.xz
  2. 解压缩到本地驱动器上的文件夹。
  3. 使用 FTP 程序将文件夹上传到 public_html(或任何适合您需要的位置),就像任何其他文件一样
  4. 更改 snappy.php 文件中的二进制路径以指向您刚刚上传的文件夹中的相应文件。答对了!你有它。您应该能够生成 PDF 文件。

wkhtmltopdf 12.5 版本现在仅在其下载页面上列出 DEB 文件。作为一名 Mac 用户,对 Linux 或 DEB 文件了解不多,我无法使用发布的解决方案。

此页面帮助我克服了下载 DEB 文件的已知问题: http://www.g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/

基本上我所做的是:

  1. 下载自 https://wkhtmltopdf.org/downloads.html
  2. 解压 DEB 文件。
  3. 解压后的data.tar.xz
  4. 将二进制文件上传到步骤 3 中解压的“usr”文件夹中 (usr/local/bin/wkhtmltopdf)

然后我发现我的主机上的“exec”功能被禁用。因此,如果您使用 PHP 来运行它,请确保您可以专门运行“exec”。“我可以运行 wkhtmltopdf 二进制文件吗”不够具体。我的错。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top