簡體   English   中英

使用包含 Django 的圖像將 HTML 渲染為 PDF

[英]Rendering HTML to PDF with images included Django

我有一個 django 應用程序,用戶可以在其中打印一些頁面,其中包含圖像作為數據處理的一部分。

我嘗試了 jsPDF 但它沒有呈現我的圖像,我最終只有文本

$(document).ready(function() {
  $("#pdfDownloader").click(function() {

    var doc = new jsPDF('p', 'pt', 'a4', true);

    doc.fromHTML($('#renderMe').get(0), 15, 15, {
      'width': 500
    }, function (dispose) {
    doc.save('thisMotion.pdf');
    });
  });
})

這是我的代碼,它沒有渲染圖像,所以我需要改變什么嗎?

使用 Django 視圖可以解決這個問題,是否有xhtml2pdf替代方案,因為我需要將我的 CSS 包含在 HTML 文件中?

fromHTML用於從 HTML 中獲取文本以形成 PDF。 嘗試改用 html2canvas js 庫。

<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.5.0-beta4/html2canvas.min.js"></script>

您可以創建一個畫布圖像並使用這樣的代碼將其添加到 PDF 中,

$(document).ready(function() {
  $("#pdfDownloader").click(function() {

html2canvas($("#renderMe")).then(canvas => {  
      const contentDataURL = canvas.toDataURL('image/png')  
      let pdf = new jspdf('p', 'pt', 'a4', true); // A4 size page of PDF  
      var positionX = 0;  
      var positionY = 0;
      pdf.addImage(contentDataURL, 'PNG', positionY, positionY, undefined, undefined)  
      pdf.save('thisMotion.pdf'); // Generated PDF   
    });

});
})

這將為您提供一個 PDF,就像在屏幕上呈現的 HTML 一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM