2017-08-16 67 views
0

我試圖使用dompdf將HTML對象導出爲PDF文檔。只使用文本,我的示例代碼工作正常。但是,在HTML代碼中包含圖像時,圖像不會顯示在PDF中。dompdf在PDF輸出中不顯示圖像

我從javascript中的ajax請求中獲取PDF蒸汽。我的繼承人的示例代碼:

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腳本相關的圖像。確保你的圖像路徑相對於該文件是正確的。或者使用文件系統的絕對路徑。另一種選擇是使用完整路徑(使用協議和域),但您需要確保遠程資源獲取已啓用。另請參閱[要求](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">這是行不通的。我想(必須)能夠使用dompdf與第二個鏈接,這是正確的,並且當我將它粘貼到瀏覽器時找到圖像。