如何在 JavaScript 中查看 PDF 文件
Adobe 建立了可攜式文件格式 (PDF),以便共用包含大量文字和圖形的文件。 若要在線上開啟PDF文件,需要使用其他程式。 在當今的出版環境中,PDF 文件對於大量出版物來說是必不可少的。 它們經常用於商業活動中,用於產生文件和發票。 開發人員產生PDF文件以滿足客戶需求。 現代圖書館讓創建 PDF 文件變得比以往任何時候都更加容易。 在為能夠產生自身渲染 PDF 檔案的專案選擇合適的程式庫時,需要考慮各種方面,包括建置、讀取和轉換功能。
2.0 JavaScript 函式庫
例如,假設我們希望客戶能夠下載並查看我們的發票副本。同樣重要的是,發票的版面、列印效果和頁數也要準確無誤。在本節中,我們將介紹一些最常用的 PDF 文件檢視庫。
2.1 HTML2PDF
HTML2PDF將 jsPDF 和 Html2Canvas 的功能結合到一個模組中,用於將網頁和範本轉換為完整的 PDF 文件。
請按照以下步驟從您的網站建立 PDF 檔案:
- 使用 NPM 在本機伺服器上安裝 html2pdf JavaScript 程式庫,或將其新增至 HTML 程式碼中,如下例所示。
- 建立一個名為
viewPDF函數,用於將目標網頁部分轉換為 PDF。 使用getElementById函數選擇所需的片段。 - 在將其傳遞給
html2pdf之前,透過將其新增至opt變數來修改格式選項。 這樣您就可以自訂 PDF 產生的各種設定。 - 在 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">
<!-- Content to convert to PDF -->
<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">
<!-- Content to convert to PDF -->
<h1>Hello World!</h1>
</div>
<button onclick="viewPDF()">View PDF</button>
</body>
</html>2.3 jsPDF
名為 jsPDF 的開源軟體完全使用 JavaScript 建立 PDF 檔案。 它會產生一個 PDF 頁面對象,並根據提供的格式對其進行格式化。 GitHub 上最常使用且維護最好的 PDF 函式庫也叫 jsPDF。 它為 Node.js 和 Web 瀏覽器提供易於使用的模組,因為它們是按照 AMD 模組標準導出的。
就 PDFKit 而言,其 API 遵循命令式模型,這使得建立複雜的佈局變得困難。 使用 JavaScript 嵌入字體唯一需要的額外步驟是將字體轉換為 TTF 文件,這是一個簡單的過程。 在下面的程式碼範例中,我們建立一個 PDF 文件,然後在 Web 瀏覽器的單獨標籤頁中開啟已建立的 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>2.3 IronPDF
IronPDF for Node.js簡化了以程式設計方式建立和自訂 PDF 文件的過程。 IronPDF 由高效能文件處理庫的可靠提供者 Iron Software 開發,為在 Node.js 環境中產生 PDF 提供了一個強大的解決方案。 它與 Node.js 專案無縫集成,為開發人員提供強大的工具,可輕鬆產生、格式化和編輯 PDF。
IronPDF for Node.js 的主要功能:
- 多功能 PDF 產生:IronPDF 支援開發者從多種來源產生 PDF,包括 HTML、CSS、JavaScript、映像和其他文件類型。這種靈活性使得創建動態且美觀的 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);
}
})();在此程式碼中
- 我們從 HTML 內容產生 PDF 文件(
pdf)。 - 我們使用
saveAs將 PDF 文件儲存到臨時檔案 (html-with-assets.pdf)。 - 我們使用
open套件中的open函數,透過預設系統應用程式開啟 PDF 檔案。 這通常會在系統上安裝的預設 PDF 檢視器中開啟 PDF 文件,否則會在預設瀏覽器中開啟。
有關 PDF 相關任務的更多程式碼範例,請造訪IronPDF Node.js 程式碼範例頁面。
輸出結果將會產生並顯示為如上圖所示。 要了解有關 IronPDF 的更多信息,請參閱IronPDF .NET PDF 檢視器指南。
3.0 結論
最後要注意的是,上面第一頁顯示的 JavaScript 程式碼有可能被濫用,並且在被其他人使用時可能會造成安全風險。 將此類程式碼新增至網頁或網站時,請務必考慮未經授權的存取風險和資料安全漏洞。 此外,還應考慮與過時的瀏覽器以及不同作業系統和瀏覽器的兼容性問題。
相較之下,IronPDF Node.js 庫提供了增強的安全措施來抵禦潛在威脅。 它不依賴特定瀏覽器,並且與所有主流瀏覽器相容。 只需幾行程式碼,開發人員即可使用 IronPDF 輕鬆建立和讀取 PDF 文件。
該庫提供各種授權選項以滿足不同開發者的需求,包括開發者的免費試用許可證和可供購買的額外許可證。 Lite 套餐售價為$799 ,包含永久授權、一年的產品支援和升級選項,且無任何續費。 這些許可證可用於開發、測試和生產環境。 此外,IronPDF 還支援其他語言,如C# .NET 、 Java和Python 。 請造訪IronPDF 網站以了解更多詳情。





