如何使用 JavaScript 將 HTML 頁面匯出為 PDF?


可以使用 JavaScript 工具(如 jsPDF 或 html2pdf.js)將 HTML 頁面轉換為 PDF 檔案。這些庫簡化了直接從網頁 HTML 文字生成 PDF 檔案的過程。當 HTML 元素及其相應的樣式已被捕獲並轉換為 PDF 格式時,使用者可以選擇下載或儲存生成的 PDF。透過在 Web 應用程式中插入必要的 JavaScript 程式碼,可以輕鬆啟用此功能,並提供可列印、離線內容表示的便利性。此功能對於生成報表、生成 Web 材料的可列印版本以及為使用者提供網站的離線文件版本很有用。

使用的方法

  • jsPDF 方法

  • html2pdf.js 方法

jsPDF 方法

在 jsPDF 方法中,開發人員使用 jsPDF 庫透過 JavaScript 將 HTML 頁面匯出到 PDF。他們可以透過將 jsPDF 庫嵌入 HTML 檔案中,在客戶端動態建立 PDF 文件。要將文字、影像和表格等內容新增到 PDF 中,需要建立一個新的 jsPDF 例項並使用其方法。HTML 頁面的內容首先被轉換為畫布,然後使用 jsPDF 的 addImage() 方法新增到 PDF 中。最後,可以使用 save() 或 output() 方法下載或儲存生成的 PDF。此方法提供了對內容修改的更多控制,使其適用於在建立 PDF 時需要特定樣式和內容組織的情況。

演算法

  • HTML 檔案應包含 jsPDF 庫 - 要使用 jsPDF,必須在 HTML 檔案中包含該庫。為此,請提供一個指向 jsPDF 庫檔案的指令碼標籤。

  • 建立一個新的 jsPDF 例項並根據需要配置它 - 包含庫後,建立一個新的 jsPDF 物件例項。根據您的需求,還可以為頁面大小、方向、邊距等方面設定配置。

  • 選擇 HTML 元素或從 HTML 字串建立 DOM 元素 - 必須找到要匯出為 PDF 的 HTML 資訊。為此,要麼從 DOM 中選擇現有的 HTML 元素,要麼使用 JavaScript 將 HTML 字串轉換為 DOM 元素。

  • 使用 HTML 到畫布庫將選定的 HTML 轉換為畫布(對於 jsPDF 可選) - 在此步驟中,可以選擇使用 html2canvas 等外部庫將選定的 HTML 內容轉換為畫布元素。此過程可確保最終 PDF 產品中複雜 HTML 元素的精確渲染。

  • 使用 jsPDF addImage() 方法將畫布新增到 PDF - 現在,可以使用 jsPDF addImage() 方法將從 HTML 內容建立的畫布新增到 PDF 檔案中。此方法使用輸入將畫布元素插入到 PDF 中。

  • 如有必要,使用其他 jsPDF 方法將更多內容新增到 PDF - 除了已轉換的 HTML 內容之外,還可以使用其他 jsPDF 方法將更多內容新增到 PDF 中,例如文字、影像或形狀。這允許您進一步個性化 PDF 檔案。

  • 使用 jsPDF save() 或 output() 方法下載或儲存 PDF 檔案 - PDF 準備就緒後,可以使用 save() 方法開始將其下載到使用者的裝置上。另一種選擇是透過 output() 方法獲取 PDF 作為資料 URI,然後可以將其用於各種目的,例如直接在瀏覽器中顯示 PDF。

html2pdf.js 方法

html2pdf.js 方法使用 html2pdf.js 庫透過 JavaScript 將 HTML 頁面匯出為 PDF。使用此庫,開發人員可以動態將 HTML 元素的子集轉換為 PDF 檔案。他們使用 JavaScript 選擇所需的 HTML 內容,並將其與任何其他自定義一起傳遞給 html2pdf() 函式。然後由庫處理轉換,它還記錄內容的組織和表示。透過自動轉換 HTML 內容並減少手動干預,它簡化了 PDF 生成過程。PDF 生成後,可以使用普通的瀏覽器功能輕鬆下載或儲存它。對於希望獲得簡單解決方案而不必深入瞭解低階 PDF 內容操作的開發人員,此方法非常適合。

演算法

  • HTML 檔案應包含 html2pdf.js 庫。

  • 選擇要轉換為 PDF 的 HTML 元素。

  • 建立一個命令列函式來啟動 PDF 轉換。

  • 函式內部 -

  • 使用 JavaScript 中的 DOM 操作選擇 HTML 元素。

  • 將選定的元素和任何其他配置提供給 html2pdf() 函式。

  • 庫將 HTML 內容轉換為 PDF 格式,同時保持 HTML 的格式和組織。

  • 建立 PDF 檔案並將其儲存到計算機的記憶體中。

  • 允許使用者使用連結/按鈕下載或儲存 PDF。

  • 當用戶選擇下載或儲存選項時,使用常規瀏覽器下載方法啟動 PDF 下載。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Export HTML to PDF</title>
   <script src="path/to/html2pdf.js"></script>
</head>
<body>
   <div id="content">
      <h1>Hello, this will be exported as a PDF!</h1>
      <p>This is some sample content that will be in the PDF.</p>
   </div>

   <button id="exportButton">Export to PDF</button>

   <script>
      function exportHTMLtoPDF() {
         let htmlElement = document.getElementById('content');

         html2pdf().from(htmlElement).save('exported_file.pdf');
      }

      document.getElementById('exportButton').addEventListener('click', exportHTMLtoPDF);
   </script>
</body>
</html>

結論

總之,開發人員可以使用 jsPDF 和 html2pdf.js 方法透過 JavaScript 將 HTML 頁面匯出為 PDF。在需要精確格式和內容排列的情況下,jsPDF 方法提供了對內容操作的更多控制。另一方面,html2pdf.js 方法提供了一個更簡單的解決方案,因為它會自動將 HTML 內容轉換為 PDF,並且需要較少的手動干預。開發人員可以根據自己的需求和偏好選擇最佳方法。將 HTML 匯出為 PDF 的能力使生成列印資訊、報表和離線文件成為可能,從而提高了網頁的可用性和整體使用者體驗。

更新於: 2023-08-17

13K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告