これと非常によく似た質問を複数見たので、最初は投稿するのをためらっていました。しかし、私の問題を解決したことを示唆するものは何もなく、自分で何が問題なのかを理解できないようです。
あるクライアントのために私が作成したプロジェクトでは、顧客の見積もり (オンライン フォームを使用して生成) を PDF に変換できるようにしたいと考えていました。十分に単純です。プロジェクト全体が PHP であったため、次の簡単なプロセスを使用しました。
- 見積もりを一時 HTML ファイルとして保存する
- WkHTMLtoPDF を使用して HTML ファイルを PDF に変換します
- このPDFファイルを出力
- クリーンアップ (一時ファイルの削除)
これは、サーバーを変更するまで機能しました。新しいサーバーにはファイアウォールがあります。
最初の PDF 変換ステップは、サーバーがアウトバウンド接続を確立できないことを示すファイアウォール ページを返していました。これを解決するために、HTML ファイルにリンクするのではなく、HTML ファイルを直接フィードしました (www.example.com/temp/18382.html ではなく、/var/www/mysite/temp/18382.html)。これにより HTML が変換されましたが、ファイアウォールによって CSS と画像の読み込みが妨げられました
CSS にリンクする (タグを使用する) のではなく、サイトに直接埋め込むだけで CSS を克服できます<style>
が、これは画像には機能しません。
最初に相対リンクを使用してみました。に変更<img src="http://www.example.com/temp/image.jpg" />
しました<img src="./image.jpg" />
。これはうまくいきませんでした。
次に試してみ<img src="file:///var/www/mysite/temp/image.jpg" />
ましたが、これもうまくいきませんでした
私は WkHTMLtoPDF マニュアルを読んで調べ、いくつかの異なるコマンド ライン引数を試しまし--enable-local-file-access
た。--enable /var/www/mysite/temp/
--images