在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在文件共享領域中,可攜式文件格式 (PDF), 由 Adobe 開創,對於保持豐富文本和視覺吸引力內容的完整性起著關鍵作用。 在線訪問 PDF 文件通常需要專門的程式。 在當今的數位環景中,PDF 文件已成為各種重要出版物不可或缺的一部分。 許多企業依賴 PDF 文件來創建專業文件和發票。 此外,開發人員經常使用 PDF 創建庫來滿足特定客戶的需求。 隨著現代庫的出現,生成 PDF 的過程變得更加簡便。 在為涉及 PDF 生成的項目選擇最合適的庫時,必須考慮建構、讀取和轉換能力等因素,確保無縫集成和最優性能。
考慮例如,我們希望客戶能夠輕鬆下載並列印我們的PDF發票。此外,對我們來說保持發票的精確佈局和確保完美的列印質量是至關重要的。
在本節中,我們將深入探討一些高度評價的JavaScript庫,這些庫在轉換和創建HTML到PDF文件方面表現出色,為我們提供了高效準確的文件生成和轉換工具。
PDFKit 是一個 PDF 函式庫,是最早進入龐大的 JavaScript 函式庫生態系統之一。自 2012 年首次發布以來,它的受歡迎程度顯著增長,截至 2021 年,它仍然在定期升級。
使用 Webpack,PDFKit 支援 Node 函式庫和網頁瀏覽器,並且支援自定義字體和圖像嵌入。
然而,正如我們在比較中將看到的,有些 PDF 函式庫實際上只是 PDFKit 的外包裝,可能比 PDFKit 更容易使用。
PDFKit 沒有高層級 API,文件常常也很難理解。正如你可能預期的那樣,需要一些時間來適應,你可能會發現使用 JavaScript 生成 PDF 並不是一件容易的事。
// including the file system module
const fs = require('fs');
// create a document the same way as above
const Page = new PDFDocument;
// add your content to the document here, as usual
Page.text('Hello world!');
// get a blob when you're done
Page.pipe(fs.createWriteStream('Demo.pdf'));
Page.end();
與使用傳統命令式方法生成內容的 PDFKit 不同,pdfmake 使用聲明式方法。因此,使用 pdfmake 庫更容易集中注意力在 PDF 生成的預期功能上,而不是浪費時間教導庫如何實現某個結果。
需要注意的是,儘管某些解決方案可能看起來很有前途,但它們未必完美無缺。這方面的一個例子是將自定義字體與 pdfmake 集成時使用 Webpack,這可能會導致問題。遺憾的是,關於這一特定問題的在線文檔有限。但是,如果您不使用 Webpack,您可以輕鬆複製 Git 存儲庫並執行字體嵌入腳本,以克服與自定義字體集成相關的任何潛在障礙。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
</head>
<body>
<script type="text/javascript">
function CreatePdf() {
var doc = {
content: [
{text:"Hello world"}
],
defaultStyle: {
}
};
pdfMake.createPdf(doc).print();
}
</script>
<button onclick="CreatePdf()">Print pdf</button>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.56/vfs_fonts.js"></script>
</head>
<body>
<script type="text/javascript">
function CreatePdf() {
var doc = {
content: [
{text:"Hello world"}
],
defaultStyle: {
}
};
pdfMake.createPdf(doc).print();
}
</script>
<button onclick="CreatePdf()">Print pdf</button>
</body>
</html>
IronPDF 是為了讓開發人員更容易創建、瀏覽和編輯PDF文件而創建的。它作為一個強大的PDF轉換器,提供了一個基礎API用於創建、編輯和處理PDF文件。
IronPDF for Node.js簡化了以程式化方式創建和自訂PDF文件的過程。由Iron Software開發,這是一個高性能文檔處理庫的可信提供者,IronPDF為Node.js環境中的PDF生成提供了一個強大的解決方案。它無縫集成到Node.js項目中,為開發人員提供了強大的工具,輕鬆生成、格式化和編輯PDF。
IronPDF庫有豐富的功能,包括分割和合併新或現有PDF文檔的頁面、閱讀和編輯現有的PDF文件、從PDF文件中提取圖像、添加文本、圖形、書簽、水印、頁眉和頁腳到PDF文件,這些都不需要安裝Acrobat Reader。從CSS和CSS媒體文件中可以生成PDF文檔。IronPDF允許用戶創建、上傳和更新新的和預先存在的PDF表單。
IronPDF for Node.js的關鍵功能:
下面的代碼演示了如何 JavaScript 程式碼 嵌入HTML中的內容可以渲染為像素完美的PDF檔案:
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Define the JavaScript code to change text color to red
const htmlWithJavaScript = `<h1>This is HTML</h1>
<script>
document.write('<h1>This is JavaScript</h1>');
window.ironpdf.notifyRender();
</script>`;
// Create rendering options object
const renderOptions = {
enableJavaScript: true,
};
// Render HTML content to a PDF
const pdf = await PdfDocument.fromHtml(htmlWithJavaScript, { renderOptions });
// Save the PDF with the executed JavaScript
await pdf.saveAs("javascript-in-html.pdf");
})();
您也可以執行 自訂 JavaScript 使用 JavaScript 程式碼輕鬆修改 HTML 內容外觀:
import {PdfDocument} from "@ironsoftware/ironpdf";
(async () => {
// Define the JavaScript code to change text color to red
const javascriptCode = "document.querySelectorAll('h1').forEach(function(el){el.style.color='red';})";
// Create rendering options object
const renderOptions = {
enableJavaScript: true,
javascript: javascriptCode,
};
// HTML content to be rendered
const htmlContent = "<h1>Happy New Year!</h1>";
// Render HTML content to a PDF
const pdf = await PdfDocument.fromHtml(htmlContent, { renderOptions: renderOptions });
// Save the PDF with the executed JavaScript
await pdf.saveAs("executed_js.pdf");
})();
當我們點擊下載按鈕時,它會像上圖的 PDF 頁面所顯示的那樣下載 PDF 文件。創建的 PDF 文件將如下所示。
更多詳細的教程可以在 這裡.
應該提到的是,當其他人使用上述的 JavaScript 代碼時,可能會存在誤用和安全問題。在將此類代碼放置在網頁或網站上時,考慮未經授權的訪問和數據安全漏洞等危險是至關重要的。此外,還需要考慮支持可能缺乏所有必要功能的過時瀏覽器以及與各種系統和瀏覽器的兼容性問題。
IronPDF 不僅適用於 Node.js,還適用於包括其他流行平台。 .NET, Java,和 Python. 跨平台的可用性確保了在不同技術堆疊上工作的開發人員的一致性和靈活性。憑藉其豐富的功能集、無縫整合和穩定的性能,IronPDF 是尋求在 Node.js 專案中簡化 PDF 生成的開發人員的寶貴工具。
為了滿足各種開發人員的需求,該庫提供了多種授權選項,包括一個 免費試用 許可和額外的開發者 授權 可供購買的選項。$749 Lite 套餐附有永久許可證、30 天退款保證、一年的軟體支援和升級選項。除了初始購買外,沒有其他費用。