2017-08-16 16 views
0

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オブジェクトを転送することです。

+0

'loadHtml()'とイメージ参照の相対パスを使用しているので、Dompdfは実行中のPHPスクリプトに相対的なイメージを探します。あなたのイメージパスがそのファイルに対して正しいことを確認してください。または、ファイルシステムの絶対パスを使用します。もう1つの方法はフルパス(プロトコルとドメインを使用)を使用することですが、リモートリソースのフェッチが有効になっていることを確認する必要があります。また、[requirements](https://github.com/dompdf/dompdf/wiki/Requirements)のヘルプページも参照してください。 – BrianS

答えて

0

画像への絶対パスを使用してください。

+0

私はそれを試みましたが、絶対パス(私の場合は "http://localhost/html_export/pic.jpg")を使用すると、画像が "画像が見つかりませんでした"またはタイプ不明 " – DavidH

+0

どのサーバーを使用していますか?あなたは上記のリンクで画像そのものを開くことができますか? – treolandix

+0

私はXAMPP apacheを使用しています。画像へのリンクはブラウザで正常に動作します。 – DavidH

0

私はほぼ同じ問題を抱えている:私が使用している場合:それが動作

<img src="../ab/media/cd/img1.jpg">が、私は使用している場合:<img src="http://www.Mypage.com/ab/media/cd/img1.jpg">それは動作しません。私は、(正しい)2番目のリンクでdompdfを使用できるようにしたいと思います。ブラウザに貼り付けるとイメージが見つかります。

関連する問題