跳至頁尾內容
PDF工具

如何在 JavaScript 中查看 PDF 文件

Adobe建立了可攜式文件格式 (PDF) 以便於分享含有豐富文字和圖形的文件。 要線上打開PDF檔案,需要不同的程式。 在當今的環境中,PDF檔案對於大量出版是不可或缺的。 它們經常在商業中被用於生成文件和發票。 開發者生成PDF檔案以滿足客戶需求。 現代程式庫使得建立PDF比以往更容易。 當選擇適當的程式庫來專案生成自身渲染的PDF檔案時,需要考慮多個方面,包括構建、讀取和轉換功能。

2.0 JavaScript 程式庫

考慮到例如,我們希望客戶能夠下載並查看我們發票的副本。我們同樣重視的是這份發票的準確佈局、印刷和頁數。在本節中,我們將檢視一些熱門的PDF文件檢視程式庫。

2.1 HTML2PDF

HTML2PDF 將jsPDF和Html2Canvas的功能結合到一個模組中,將網頁和模板轉換成完整的PDF文件。

請遵循以下步驟從您網站生成PDF:

  1. 使用NPM在您的伺服器上本地安裝html2pdf JavaScript程式庫,或如下面的範例中將其新增到您的HTML程式碼中。
  2. 建立名為viewPDF的函式,用於將目標網頁部分轉換為PDF。 使用getElementById函式選擇所需的部分。
  3. 在將其傳遞給opt變數中來修改格式選項。 這允許您自定義PDF生產的各種設置。
  4. 在您的HTML頁面上包含一個按鈕,當點擊時,觸發viewPDF函式。 此函式將生成PDF,並在單獨的瀏覽器標籤中打開它。
<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
  <script>
    function viewPDF() {
      // Select the element to convert to PDF
      const element = document.getElementById('content-to-print');

      // Define PDF formatting options
      var opt = {
        margin: 1,
        filename: 'Demopdf.pdf',
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
      };

      // Create and open the PDF
      let worker = html2pdf().set(opt).from(element).toPdf().output('blob')
        .then((data) => {
          let fileURL = URL.createObjectURL(data);
          window.open(fileURL);
        });
    }
  </script>
</head>
<body>
    <div id="content-to-print">

        <h1>Hello World!</h1>
    </div>
    <button onclick="viewPDF()">View PDF</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
  <script>
    function viewPDF() {
      // Select the element to convert to PDF
      const element = document.getElementById('content-to-print');

      // Define PDF formatting options
      var opt = {
        margin: 1,
        filename: 'Demopdf.pdf',
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
      };

      // Create and open the PDF
      let worker = html2pdf().set(opt).from(element).toPdf().output('blob')
        .then((data) => {
          let fileURL = URL.createObjectURL(data);
          window.open(fileURL);
        });
    }
  </script>
</head>
<body>
    <div id="content-to-print">

        <h1>Hello World!</h1>
    </div>
    <button onclick="viewPDF()">View PDF</button>
</body>
</html>
HTML

如何在JavaScript中檢視PDF檔案:圖1

2.3 jsPDF

名為jsPDF的開源軟體僅使用JavaScript建立PDF檔案。 它生成一個頁面物件作為PDF頁面並根據提供的格式進行格式化。 在GitHub上最常使用且維護良好的PDF程式庫也被稱為jsPDF。 它為Node.js和網頁瀏覽器提供了易於使用的模組,因為它們是按照AMD模組標準導出的。

談到PDFKit,其API遵循命令式模型,這可能會使得構建複雜的佈局變得困難。 用JavaScript嵌入字體的唯一額外步驟是將字體轉換為TTF文件,這是一個簡單的步驟。 在以下程式碼範例中,我們建立一個PDF文件,然後在網頁瀏覽器中打開建立的PDF,置於單獨的標籤中。

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
  <script>
    function viewPDF() {
      // Create a new instance of jsPDF
      var pdf = new jsPDF({
        orientation: 'p',
        unit: 'mm',
        format: 'a5',
        putOnlyUsedFonts: true
      });

      // Add text to the PDF
      pdf.text("Hello World", 20, 20);

      // Open the generated PDF in a new browser tab
      window.open(pdf.output('bloburl'));
    }
  </script>
</head>
<body>
  <button onclick="viewPDF()">View Pdf</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
  <script>
    function viewPDF() {
      // Create a new instance of jsPDF
      var pdf = new jsPDF({
        orientation: 'p',
        unit: 'mm',
        format: 'a5',
        putOnlyUsedFonts: true
      });

      // Add text to the PDF
      pdf.text("Hello World", 20, 20);

      // Open the generated PDF in a new browser tab
      window.open(pdf.output('bloburl'));
    }
  </script>
</head>
<body>
  <button onclick="viewPDF()">View Pdf</button>
</body>
</html>
HTML

2.3 IronPDF

IronPDF for Node.js 簡化了程式化建立和自定義PDF檔案的過程。 由受信任的高效能文件處理程式庫提供商Iron Software開發,IronPDF為Node.js環境中的PDF生成提供強大的解決方案。 它與Node.js專案無縫整合,為開發者提供了強大的工具,使生成、格式化和編輯PDF變得輕而易舉。

IronPDF for Node.js的主要功能:

  • 多功能的PDF生成:使用IronPDF,開發者可以從包括HTML、CSS、JavaScript、圖片和其他文件型別在內的多個來源生成PDF。這種靈活性使得能夠建立針對特定需求的動態且視覺美觀的PDF文件。
  • 高級文件自訂:IronPDF能夠讓開發者增強PDF文件,增加標題、頁尾、附件、數位簽名、浮水印和書簽等功能。 這允許建立具有豐富內容和互動元素的專業級PDF。
  • 安全功能:IronPDF提供強大的安全功能,以保護PDF免受未經授權的存取。 開發者可以執行如密碼、數位簽名、元資料和其他安全設置等安全措施來保護PDF文件中包含的敏感資訊。
  • 最佳性能:IronPDF為最佳性能而設計,提供完整的多執行緒和非同步支援。 這確保了高效的PDF生成,使其適合在性能至關重要的任務中使用。
  • 完整功能集:IronPDF提供超過50種用於建立、格式化和編輯PDF檔案的功能,為所有PDF相關任務提供全面的解決方案。 從基本文件生成到高級自定義和安全,IronPDF擁有滿足開發者需求的廣泛功能。

以下程式碼範例使用JavaScript建立PDF檔案,然後直接從應用程式檢視:

import { PdfDocument } from "@ironsoftware/ironpdf";
import fs from "fs";
import open from "open";

(async () => {
  try {
    // Create a PDF from an HTML string
    const pdf = await PdfDocument.fromHtml("<h1>Hello World</h1>");

    // Save the PDF to a temporary file
    const filePath = "html-with-assets.pdf";
    await pdf.saveAs(filePath);

    // Open the PDF file using the default system application
    open(filePath);
  } catch (error) {
    console.error("Error creating or opening PDF:", error);
  }
})();
import { PdfDocument } from "@ironsoftware/ironpdf";
import fs from "fs";
import open from "open";

(async () => {
  try {
    // Create a PDF from an HTML string
    const pdf = await PdfDocument.fromHtml("<h1>Hello World</h1>");

    // Save the PDF to a temporary file
    const filePath = "html-with-assets.pdf";
    await pdf.saveAs(filePath);

    // Open the PDF file using the default system application
    open(filePath);
  } catch (error) {
    console.error("Error creating or opening PDF:", error);
  }
})();
JAVASCRIPT

在此程式碼中:

  • 我們從HTML內容生成PDF文件(pdf)。
  • 我們使用html-with-assets.pdf)。
  • 我們使用open函式來使用預設系統應用程式打開PDF文件。 這通常會在安裝在系統上的預設PDF檢視器中,否則會在預設瀏覽器中打開PDF。

有關PDF相關任務的更多程式碼範例,請存取此IronPDF Node.js程式碼範例頁面。

如何在JavaScript中檢視PDF文件:圖2

輸出將生成並顯示如上圖所示。 要了解更多關於IronPDF的資訊,請參閱IronPDF .NET PDF Viewer指南

3.0 總結

最後,重要的是要注意,前述首頁中顯示的JavaScript程式碼可能會被錯誤使用,並可能在被他人使用時造成安全風險。 在將此類程式碼加入網頁或網站時,考慮未經授權存取和資料安全漏洞的風險至關重要。 此外,還應考慮與過時瀏覽器及不同的操作系統和瀏覽器的相容性問題。

相對而言,IronPDF Node.js程式庫提供了增強的安全措施,以防止潛在的威脅。 它不依賴於特定瀏覽器,並且與所有主流瀏覽器相容。 只需幾行程式碼,開發者就可以輕鬆地使用IronPDF建立和閱讀PDF文件。

程式庫提供了不同的授權選項以滿足不同開發者的需求,包括提供給開發者的免費試用授權以及其他可購買的授權。 Lite套裝,價格為$999,包含永久授權、一年的產品支援和升級選項,無需定期支付費用。 這些授權可用於開發、測試和生產環境。 此外,IronPDF也適用於其他語言,例如C# .NETJavaPython。 請存取IronPDF網站以獲得更多詳細資訊。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話