113

私はwkthmltopdfを使用して、LinuxWebサーバー上でHTMLをPDFドキュメントにオンザフライで変換しています。プログラムを正しく実行するには、元々X11または同様のXサーバーが必要でしたが、GUIのない​​サーバーでこれを実行するように開発者から多くの要求があったため、静的バージョンで仮想Xサーバーを実行すると確信しています。私はプログラムの静的(スタンドアロン)バージョンを使用してきましたが、それはうまく機能します!実行可能ファイルをフォルダーに入れて、次のコマンドを実行します。

./wkhtmltopdf file1.html file2.pdf

ただし、このプログラムをシステム全体にインストールしたいと思います。apt-get install wkhtmltopdf(昨日インストールしたばかりの)を使用しましたが、64ビットシステムで実行しているので、も必要でしapt-get install ia32-libsた。インストール後、次のようなバージョンを見つけることができます。

wkhtmltopdf --version

出力:

Name:
  wkhtmltopdf 0.9.9

License:
  Copyright (C) 2008,2009 Wkhtmltopdf Authors.



  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  This is free software: you are free to change and redistribute it. There is NO
  WARRANTY, to the extent permitted by law.

Authors:
  Written by Jakob Truelsen. Patches by Mário Silva, Benoit Garret and Emmanuel
  Bouthenot.

aptitudeを介してインストールされたプログラムを実行しようとすると、次のエラーが発生します。

wkhtmltopdf: cannot connect to X server

誰かが私がこれを修正する方法を知っていますか?このバージョンには仮想Xサーバーか何かが欠けていると思います。

4

21 に答える 21

208

またはこれを試してください(http://drupal.org/node/870058から)

  1. wkhtmltopdfをダウンロードします。または、パッケージマネージャーを使用してインストールすることをお勧めします。

    sudo apt-get install wkhtmltopdf
    
  2. 抽出してに移動します/usr/local/bin/

  3. 名前を変更しwkhtmltopdfて、で実行可能ファイルを作成します。/usr/local/bin/wkhtmltopdf
  4. 権限を設定します。sudo chmod a+x /usr/local/bin/wkhtmltopdf
  5. 必要なサポートパッケージをインストールします。

    sudo apt-get install openssl build-essential xorg libssl-dev
    
  6. それが機能するかどうかを確認します:実行

    /usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
    

    それが機能する場合は、完了です。「Xサーバーに接続できません」というエラーが表示された場合は、7番に進んでください。

  7. '仮想'xサーバーでヘッドレスで実行する必要があります。これは、xvfbというパッケージで行います。

    sudo apt-get install xvfb
    
  8. wkhtmltopdfをxvfbでラップするための小さなシェルスクリプトを作成する必要があります。と呼ばれるファイルwkhtmltopdf.shを作成し、以下を追加します。

    xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"
    
  9. このシェルスクリプトをに移動し/usr/local/bin、権限を設定します。

    sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
    
  10. それがもう一度機能するかどうかを確認します:実行

    /usr/local/bin/wkhtmltopdf.sh http://www.google.com test.pdf
    

http://www.google.comは、「終了したResourceObjectが読み込み終了信号を受信しました。これは、iframeの読み込みに時間がかかっていることを示している可能性があります」などのエラーをスローする場合があることに注意してください。のような単純なページでテストすることをお勧めしますhttp://www.example.com

于 2012-03-13T13:36:59.923 に答える
61

これで問題は解決しました。

sudo apt-get install xvfb
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf file1.html file2.pdf
于 2012-11-28T12:12:59.553 に答える
28

私はやろうとしましsudo apt-get install wkhtmltopdfたが、成功しませんでした。代わりに、次のことを試してみることをお勧めします。

  1. 最新の実行可能ファイル(.11 rc1)をダウンロードします。

    wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

  2. それを解凍します:

    tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

  3. 名前を変更します:

    mv wkhtmltopdf-i386 wkhtmltopdf

  4. 実行可能ファイルにchmodします:

    chmod a+x wkhtmltopdf

  5. / usr/binに配置します。

    sudo mv wkhtmltopdf /usr/bin

于 2013-03-07T05:30:49.753 に答える
27

ちょうどそれを作りました:

1-wkhtmltopdfの依存関係をダウンロードするには

# apt-get install wkhtmltopdf

2-ソースからダウンロード

# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb

# dpkg -i xxx.deb

3-試してみてください

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

その正常に動作します

できます!

于 2014-11-14T12:28:24.580 に答える
16

私は偽のXサーバーなしでこの問題を解決する方法を見つけました。最新バージョンのwkhtmltopdfでは、作業にXサーバーは必要ありませんが、公式のLinuxリポジトリには必要ありません。

Ubuntu 14.04.4 LTS(信頼できる)i386のソリューション

$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-i386.deb
$ wkhtmltopdf http://www.google.com test.pdf

Ubuntu 14.04.4 LTS(信頼できる)amd64のソリューション

$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ wkhtmltopdf http://www.google.com test.pdf

ユーザーfelixhummelは非常に優れたソリューションを取得しましたが、utiliteのリポジトリが変更されました。

于 2016-01-22T13:08:13.243 に答える
11

ティモシーの答えを拡張して...

Webアプリの一部としてwkhtmltopdfを使用することを検討しているWeb開発者の場合は、次の/usr/bin/ようにフォルダーにインストールするだけです。

cd /usr/bin/
curl -C - -O http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
tar -xvjf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
mv wkhtmltopdf-i386 wkhtmltopdf

これで、を使用してどこでも実行できますwkhtmltopdf

私は個人的にPHPでSnappyライブラリを使用しています。PDFの作成がいかに簡単であるかの例を次に示します。

<?php

// Create new PDF
$pdf = new \Knp\Snappy\Pdf('wkhtmltopdf');

// Set output header
header('Content-Type: application/pdf');

// Generate PDF from HTML
echo $pdf->getOutputFromHtml('<h1>Title</h1><p>Your content goes here.</p>');
于 2013-05-21T19:16:03.193 に答える
11

SourceForgeから最新のwkhtmltopdfバージョンに更新します(この記事の執筆時点では0.12)。実行するのにXサーバーは必要ありません。

Ubuntu 14.04の例:

$ cd /tmp/                                                                                                                                                                                                       
$ wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ dpkg -x wkhtmltox-0.12.2.1_linux-trusty-amd64.deb foo

$ echo '<p>hi</p>' | ./foo/usr/local/bin/wkhtmltopdf - /tmp/hi.pdf
Loading pages (1/6)
Counting pages (2/6)                                               
Resolving links (4/6)                                                       
Loading headers and footers (5/6)                                           
Printing pages (6/6)
Done                                                                      

$ head -n3 /tmp/hi.pdf 
%PDF-1.4
1 0 obj
<<
于 2014-10-16T08:58:06.710 に答える
9

14.04.1の場合-Ubuntuhttps: //wkhtmltopdf.org/downloads.html

wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -O mktemp.tar.xz
tar xf mktemp.tar.xz
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf
rm mktemp.tar.xz
rm wkhtmltox -rf
apt-get update
apt-get install -y libxrender1 libxtst6 libxi6
wkhtmltopdf http://www.google.com test.pdf
于 2017-04-21T21:25:38.873 に答える
6
sudo -i
apt-get install wkhtmltopdf xvfb libicu48
mv /usr/bin/wkhtmltopdf /usr/bin/wkhtmltopdf-origin
touch /usr/bin/wkhtmltopdf && chmod +x /usr/bin/wkhtmltopdf && cat > /usr/bin/wkhtmltopdf << END
#!/bin/bash

/usr/bin/xvfb-run -a -s "-screen 0 1024x768x24" /usr/bin/wkhtmltopdf-origin  "\$@"
END
于 2014-05-02T18:35:21.043 に答える
6

問題はおそらく古いバージョンのwkhtmltopdfにあります-配布リポジトリのバージョン0.9ではXサーバーを実行する必要がありますが、現在のバージョン-0.12.2.1では必要ありません-ヘッドレスで実行できます。

http://wkhtmltopdf.org/downloads.htmlからディストリビューションのパッケージをダウンロードしてインストールします-Ubuntuの場合:

sudo apt-get install xfonts-75dpi
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
于 2015-09-13T15:10:53.257 に答える
6

wkhtmltopdf>この問題0.11はありません。 したがって、Linuxサーバーにインストールします。X-server
0.12.2.1

  1. 最初にxvfbサーバーをインストールします。

    sudo apt-get install xvfb
    
  2. http://wkhtmltopdf.org/downloads.htmlから必要なバージョンのwkhtmltopdfを入手してください

  3. wkhtmltopdfをインストールします。

    sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
    

    またはでインストールwget

    URL='http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb'; FILE=`mktemp`; wget "$URL" -qO $FILE && sudo dpkg -i $FILE; rm $FILE
    
  4. 依存関係のインストール(必要な場合):

    sudo apt-get -f install
    
  5. シンブリックリンクを作成します/usr/local/bin/

    echo 'exec xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"' | sudo tee /usr/local/bin/wkhtmltopdf.sh >/dev/null
    sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
    
  6. 以下を試してみてください。うまくいくはずです。

    /usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
    
于 2016-05-12T08:12:23.097 に答える
5

静的実行可能ファイルを/usr/bin/ディレクトリに移動して、どこからでも実行できることがわかりました。

于 2012-03-07T16:47:17.790 に答える
3

少なくとも0.12.2.1を使用することをお勧めします。

wkhtmltopdf> = 0.12.2から、Xサーバーやエミュレーションは不要になりました。新しいバージョンはhttp://wkhtmltopdf.org/downloads.htmlからダウンロードできます。

于 2017-01-12T11:23:27.480 に答える
1

私はここの指示に従い、wkhtmltopdfを機能させましたが、私自身の小さなダンスをしているときに発見した少しの視点を提供したいと思いますwkhtmltopdf- xvfb

悪名高いエラーをスローするのと同じ理由cannot connect to X serverで、Xサーバーを提供したとしても、重大な制限付きで実行されるため、これは重要です。これらの制限には、複数の入力ソースを取得できない、ヘッダーとフッターを設定できないなどが含まれます(マニュアルの「機能の低下」セクションを確認してください)。

wkhtmltoxそれ自体はX11を必要としませんが、必要なQTライブラリを利用しています。wkthmltoxの新しいバージョンでは、開発者はQT用のパッチを作成してX11で実行できるようにしました。

現在、一部のバージョンはパッチが適用されたQTに対して構築されており、一部はそうではありません。を実行してバージョンを確認できますwkhtmltopds --version。最後に「Compiled against wkhtmltopdf patched qt.

したがって、結論として、パッチを適用したライブラリを使用するバージョンをインストールして使用すると、xvfb確認できるように、サーバーがなくてもLinuxサーバーで動作するはずです。

于 2014-04-15T15:42:28.500 に答える
1

Centos7のソリューション

yum -y install xorg-x11-fonts-75dpi \
               xorg-x11-fonts-Type1 \
&& rpm -Uvh http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

Dockerコンテナ内でこの問題が発生し、上記のインストールにはパッチが適用されたQTを含むwkhtmltopdfが含まれています

于 2015-08-28T18:01:15.620 に答える
1

注意してください:あなたのファイルはまたはである可能性がありますwkhtmltopdf.shwkhtmltopdf2番目のステップでそれを確認してください

これをディレクトリ:/ usr / local / binにコピーし、実行可能ファイルにして、次のようなwkhtmltopdf.shのシンボリックリンクを追加する必要があります。

1-コマンド:

sudo apt-get install wkhtmltopdf

2-ディレクトリ/usr/ binにバイナリを挿入して、ブラウザがこのディレクトリで実行する権限を持たないようにします。wkhtmltopdf.sh をディレクトリ/usr/ local / binにコピーする必要があります。これにより、ブラウザはこのディレクトリで次のような権限を持ちます。

sudo cp /usr/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf.sh

3-surを作成した後、バイナリには次のような実行の許可があります。

sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh

4-テストできるようになったので、次のように動作します。

/usr/local/bin/wkhtmltopdf.sh http://www.google.com google.pdf

それはあなたのターミナルの現在のディレクトリにpdfをダウンロードさせます

5-オプションで、ディレクトリ/ usr / local/binにシンボリックリンクを追加できます。

ln -s /usr/local/bin/wkhtmltopdf.sh /usr/local/bin/wkhtmltopdf
于 2019-04-18T20:39:34.210 に答える
1

Xを使用しないようにQtバックエンドに指示するだけです。

QT_QPA_PLATFORM=offscreen wkhtmltopdf <input> <outfile.pdf>
于 2020-06-24T07:52:09.410 に答える
0

64ビット使用の場合:

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2

tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2

sudo mv wkhtmltopdf-amd64 /usr/bin/wkhtmltopdf

sudo chmod +x /usr/bin/wkhtmltopdf

于 2016-06-25T11:09:31.590 に答える
0
  1. このリンクからファイルをダウンロード
  2. それを抽出し、実行可能ファイル(/ wkhtmltox / bin / wkhtmltopdf)をに移動します/usr/bin/
  3. 現在の名前がwkhtmltopdfでない場合は、名前をwkhtmltopdfに変更します。これで、実行可能ファイルが/usr/bin/wkhtmltopdf
  4. 権限を設定します:sudo chmod a + x / usr / bin / wkhtmltopdf
  5. 必要なサポートパッケージをインストールします。sudo apt-get install openssl build-essential xorg libssl-dev
  6. ここで、wkhtmltopdf http://www.google.com test.pdf ヒントで確認してください:このリンクからの詳細情報
于 2017-04-12T12:13:30.210 に答える
0

0.12.4以降のバージョンをインストールするだけです。これで問題は解決したようです。

Ubuntu16.04に最新のwkhtmltopdfをインストールするにはどうすればよいですか?を参照してください。。

于 2017-09-25T08:17:37.097 に答える
0

CentosでRailsまたはSomethingsのwkhtmltopdfを構成する場合は、次の手順に従うことができます。

  1. https://wkhtmltopdf.org/downloads.htmlにアクセスし、rpmファイルのリンクをコピーしました。

CentOSサーバーbashで。

  1. wget link_of_wkhtmltopdf_rpm.rpm

  2. rpm -ivh link_of_wkhtmltopdf_rpm.rpm

  3. which wkhtmltopdf

=>wkhtmltopdfのパスを取得します。

  1. 手順4のパスを使用したwicked_pdfまたはpdfkitのセットアップ。これは、wickedpdfを使用したサンプル構成です。config / initializers / wicked_pdf.rb

    if Rails.env != "production"
        path = %x[which wkhtmltopdf].gsub(/\n/, "")
    else
        path = "path_of_wkhtmltopdf_in_step_4"
    end
    WickedPdf.config = { exe_path: path }
    
  2. サーバーを再起動します。

終わり。

于 2019-11-13T15:57:33.920 に答える