web-dev-qa-db-ja.com

Windowsでwkhtmltopdfを使用する

私はwkhtmltopdfと呼ばれる気の利いたHTMLから画像へのプラグインをセットアップしようとしていますが、本当に苦労しています。

私がこれまでにしたこと:

  1. Wkhtmltopdf Zipパッケージをダウンロードし、私のWebサイトのルートフォルダーにあるファイルをアップしました

  2. テストとして、index.phpファイルに次のコードを含めました。bbc.comWebサイトのコンテンツを.jpg画像としてWebサイトのルートフォルダーに保存する予定です。

    Shell_exec( './ wkhtmltopdf --quality 50 http://www.bbc.com bbc.jpg');

何も起こらないようです。 PHP isnotセーフモードで実行されているので、問題ありません。Shell_execが実行されているので、できました。それを使用して.txtドキュメントを作成します。

私はこれを何日も研究してきました、私は明確で単純化されたステップバイステップの作業ガイドを思い付くことができる人に100の報奨金を提供していますPHPを使用して実行するようにWidowsでwkhtmltopdfを設定する方法について。

より具体的には、次の方法に関する簡略化されたウォークスルーを探しています。

  • Phpを使用してWindowsで実行するようにwkhtmltopdfを設定します(一般的な問題の詳細とそれらを克服する方法を含めます)。

  • ボタンまたはリンクをクリックすると、「現在の」WebページがPDFに出力されます。これには、入力されたすべてのinput値が含まれます(この部分のサンプルコードを含む) 。ページのコンテンツを変更するイベントを含むWebページは、ページのcurrentバージョンを出力する必要がありますnotページの初期状態。

  • 作成された.pdfのダウンロードリンクを作成し、上記と同じ関数のonClickを作成して、pdfに出力します(この部分のサンプルコードを含みます)。

11
AnchovyLegend

ここで実際の問題が何であるかを理解するのはちょっと難しいですが、私は Windows7でwkhtmltopdfを応答させるためのブログ投稿チュートリアル/ PHP環境 。さらに詳細が必要な場合は離れてください-これはあなたの問題をカバーしていないと確信しています。

コメントでも述べたように、wkhtmltopdfとwkhtmltoimageは異なるプログラムであり、異なるコマンドラインオプションを受け入れるため、関数呼び出しShell_exec('./wkhtmltopdf --quality 50 http://www.bbc.com bbc.jpg');は失敗します。そのコマンドでwkhtmltopdfをwkhtmltoimageに置き換えると、出力ファイルが生成される場合があります。あなたの場合、Shell_exec('c:\wkhtmltopdf\wkhtmltopdf www.google.com goog.pdf 2>> err3.txt 1>> out3.txt');のようなテスト実行が最も興味深いと思います。そこでは、wkhtmltopdfが行うさまざまな入力/出力をすべて見ることができます。

9
Nenotlep

これは古い質問だと思いますが、HTMLからPDFに印刷され、画像と背景色を保持するライブラリはこれだけであることがわかったので、Windowsコマンドプロンプトを使用します。以前はPDF Architectを使用していましたが、背景色を処理できませんでした。

Wkhtmltopdfをインストールすると、c:\ Program Files\wkhtmltopdf \またはc:\ Program Files(x86)\ wkhtmltopdfのいずれかに移動します。

ローカルPHP環境でhttp://localhost/が開始点として設定されます。また、そこにhtml_invoice.htmlというファイルがあり、それをdev_invoice_200.pdfというファイルに印刷して、xamppWebサーバー内のinvoicesフォルダーに配置するとします。これを行うには、Windowsコマンドプロンプトを起動し(つまり、[スタート]-> [すべてのプログラム]-> [アクセサリ]-> [コマンドプロンプト]または[スタート]-> [ファイル名を指定して実行]-> [cmd])、次のように入力します。

c:\Program Files\wkhtmltopdf\bin\wkhtmltopdf http://localhost/html_invoice.html c:\xampp\htdocs\invoices\dev_invoice_200.pdf

これにより、適切な場所にPDFが作成されます。

Windowsコマンドプロンプトを使用しているので、PHPを使用する理由は実際にはありません。代わりに、バッチファイルを使用できます。自動化する必要がある場合は、Windowsタスクスケジューラを使用してバッチファイルを呼び出すことができます([スタート]-> [すべてのプログラム]-> [アクセサリ]-> [システムツール]-> [タスクスケジューラ])。

バッチファイルを作成したことがない場合は、実行するコマンドをプレーンテキストファイルに入力し、拡張子を.batにして保存するだけです。

したがって、常に同じ場所にあるファイルhtml_invoice.htmlをdev_invoice.pdfという名前のinvoicesフォルダーに出力し、そこに到達した後で名前を変更するとします。上記の行から「_200」を引いたものをテキストファイルに入れて.batとして保存し、Windowsでダブルクリックするか、タスクスケジューラで実行します。

9
Joshua Walcher