dompdfを使用してHTMLオブジェクトをPDFドキュメントとしてエクスポートしようとしています。テキストのみを使用して、私の例のコードは正常に動作します。ただし、HTMLコードに画像を含めると、画像は単にPDFに表示されません。dompdfがPDF出力でイメージを表示していません
javascriptでajaxリクエストからPDFを取得しています。 HERESに私のコード例:
JS:
$(document).ready(function() {
$('#export-pdf').on("click", function() {
$.ajax({
url: "html_pdf_export.php",
success: function (data) {
printPDF(data, function (htmlText) {
var detailWindow = window.open("", "detailPDF");
detailWindow.document.write(htmlText);
console.log(htmlText);
detailWindow.document.close();
});
}
});
});
});
function printPDF(data, callback) {
var pdfText = $.trim(data);
var htmlText = '<embed width="100%" height="100%" type="application/pdf" src="data:application/pdf,'
+ encodeURI(pdfText) + '"></embed>';
callback(htmlText);
}
PHP:今
$dompdf = new Dompdf();
$dompdf->loadHtml("<h1>Das ist ein Header</h1><p>Das ist ein Absatz unter einem Header.</p>
<img src='./pic.jpg' style='border: 2px solid black; width: 50%;'>");
$dompdf->render();
$dompdf->stream();
私はちょうど終わりものの、PHPファイルで指定されたいくつかのハードコーディングされたHTMLコードをストリーミングしようとしています目標は、ajax呼び出しを介してDOMオブジェクトを転送することです。
'loadHtml()'とイメージ参照の相対パスを使用しているので、Dompdfは実行中のPHPスクリプトに相対的なイメージを探します。あなたのイメージパスがそのファイルに対して正しいことを確認してください。または、ファイルシステムの絶対パスを使用します。もう1つの方法はフルパス(プロトコルとドメインを使用)を使用することですが、リモートリソースのフェッチが有効になっていることを確認する必要があります。また、[requirements](https://github.com/dompdf/dompdf/wiki/Requirements)のヘルプページも参照してください。 – BrianS