該頁面可以包含自動翻譯的文字。
.NET 的 HTML 轉 PDF
您可以使用 Docotic.Pdf 庫將 HTML 轉換為 PDF。該程式庫的免費外掛程式 HtmlToPdf 可以將 HTML、SVG、WEBP 和其他網頁格式轉換為 PDF。
本指南概述了該外掛程式提供的 HTML 轉 PDF 功能,並包含指向相關頁面的鏈接,以便您更詳細地了解所討論的主題。

C# 中 HTML 轉 PDF 的基礎知識
您需要 HtmlToPdf 外掛程式、轉換程式碼片段和許可證金鑰。您可以先使用免費試用金鑰。
從 NuGet 安裝插件
Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf
這是建議的方法,因為它能自動處理依賴項和更新。您也可以從包含 Docotic.Pdf 二進位檔案的壓縮套件中手動安裝插件,儘管這種方法更複雜且更容易出錯。
取得許可證密鑰
若要試用該程式庫,請從 Docotic.Pdf 的下載頁面取得免費的限時授權金鑰。如果您已購買許可,請使用購買後收到的代碼。
所有 Docotic.Pdf 授權均包含 HTML 轉 PDF 功能。使用此附加功能無需購買額外許可。
新增轉換程式碼
BitMiracle.Docotic.LicenseManager.AddLicenseData("PUT-LICENSE-HERE");
using var converter = await HtmlConverter.CreateAsync();
var html = "<h1>Hello, World<h1>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");
在程式碼中,將 AddLicenseData 方法呼叫中的佔位符值替換為有效的許可證金鑰。
運行程式碼
轉換程式碼會根據字串中的 HTML 程式碼產生 PDF 檔案。使用預設轉換選項,輸出結果為一張 A4 紙大小的文件。
該庫提供了豐富的轉換自訂選項。您可以變更輸出尺寸,或為產生的頁面新增頁首和頁尾。此外,它還可以轉換需要身份驗證的資源。
請閱讀專門的文章,以了解將 HTML 轉換為 PDF 的各種方法,文章中詳細解釋了每種方法。
為什麼 Docotic.Pdf 是合適的 HTML 轉 PDF 轉換器?
Docotic.Pdf 能夠在轉換過程中保留樣式和佈局,因此是產生 HTML 報告、發票和其他文件 PDF 文件的理想選擇。該程式庫可以從 HTML 和其他 Web 格式(例如 SVG)產生像素級精確的 PDF 文件。使用該程式庫可以輕鬆重複使用現有的 HTML 內容。
轉換器使用 Google Chrome 渲染引擎。這意味著它與頂級 Web 瀏覽器之一具有相同的 Web 標準相容性。
您可以使用 Docotic.Pdf 從包含現代 CSS、JavaScript 和圖片的非常複雜的佈局產生 PDF 檔案。它也對響應式 Web 設計提供了很好的支援。
API架構概述
HTML 轉 PDF API 僅在將 Docotic.Pdf 與免費的 HtmlToPdf 插件 配合使用時可用。
該插件提供了一個僅支援非同步操作的 API。我們將其設計為與非同步事件處理程序和非同步方法協同工作。這種設計能夠優雅地處理耗時較長的任務,媒體轉換就是此類任務的理想範例。
.NET 版本和平台支持
該函式庫和插件面向 .NET Standard 2.0。這意味著它們都相容於 .NET 5 到 .NET 10。此外,它們還支援 .NET Core 2.0+ 和 .NET Framework 4.6.1+。
您可以在 Windows Forms、WPF、ASP.NET 和控制台應用程式中使用 HTML 轉 PDF 功能。此插件可以在雲端環境和 Docker 容器中運作。
透過該插件,您可以在 Windows、macOS 和 Linux 環境中從 HTML 產生 PDF。
轉換過程中會發生什麼事?
預設情況下,轉換過程包含以下幾個階段:
- 您的程式碼呼叫 HtmlConverter 類別 的
CreateAsync方法。 - 此外掛程式檢查目前工作目錄下的
.local-chromium資料夾中是否有符合要求的 Google Chrome 版本。 - 如果沒有符合要求的版本,插件會下載一個並將其解壓縮到
.local-chromium資料夾中。 - 當您的程式碼呼叫
CreatePdfAsync或CreatePdfFromStringAsync方法時,該外掛程式會使用 Google Chrome 載入提供的 HTML。 - 內容準備好轉換後,插件會指示瀏覽器產生 PDF。
- Google Chrome 使用 Chromium 的渲染功能產生 PDF。
- 該外掛程式會將包含產生的 PDF 的 PdfDocument 傳回您的程式碼。
雲端平台和 Docker 映像
HtmlToPdf 外掛程式支援 Azure 和 AWS 雲端平台,包括無伺服器環境。您也可以在 Docker 容器中使用 HTML 轉 PDF API。以下是支援的環境列表:
- Azure: Azure Functions、Azure 應用程式服務、Azure VPS
- Amazon Web Services: AWS ECS、Amazon EC2
- Docker: Windows 和 Linux 容器。
此函式庫和外掛程式完全支援動態硬體變更、自動擴縮容和其他雲端原生運行時特性。
有關更多信息,請參閱關於在雲端和 Docker 映像中運行該插件的文章。
雲端應用支援哪些許可證類型?
大多數情況下,您需要一個非綁定許可證(Ultimate 或 Ultimate+)。如果硬體 ID 不變,伺服器許可證也可能適用。
伺服器許可證與伺服器的硬體 ID 綁定。如果在運行或重新啟動之間硬體發生變化,伺服器許可證將失效。此外,在伺服器數量可能動態變化的環境中,伺服器許可證也無法使用,因為每個生產伺服器都需要一個唯一的許可證。
為確保伺服器的硬體 ID 保持一致,您可以檢查 LicenseManager.Uid 屬性的值。或者,您可以使用我們的 UID 生成器應用程式 來取得相同的 ID。
如何從 HTML 模板產生 PDF
請依照以下簡單步驟操作:
- 取得範本資料。
- 將資料填入模板中,產生完整的 HTML 程式碼。
- 使用 Docotic.Pdf 將完整的 HTML 程式碼轉換為 PDF 檔案。

模板資料通常來自資料庫或 API 回應。對於資料庫,它可以是一筆記錄或一組記錄。對於 API,它通常是一個描述一個或多個實體的 JSON 物件。
以下範例將使用這位虛構人物:
var person = new
{
Name = "Alice Johnson",
Age = 27,
Email = "alicej@example.com",
Occupation = "Truck driver"
};
現在我已經有了數據,接下來我將介紹三種準備和填充 HTML 模板的方法。這三種方法產生的最終 HTML 程式碼完全相同,即使對應的模板不同。
要轉換完整的 HTML 程式碼,請使用我已提供的程式碼。
命名佔位符
命名佔位符是用雙分隔符號括起來的標記,分隔符號使用非字母數字符號。 %% 是最不容易發生衝突的分隔符號之一。
以下是一個包含命名佔位符的模板,以及從中產生完整 HTML 的程式碼:
var template = @"<head><title>%%NAME%%'s Profile</title></head>
<body>
<h1>%%NAME%%</h1>
<p><strong>Age:</strong> %%AGE%%</p>
<p><strong>Email:</strong> %%EMAIL%%</p>
<p><strong>Occupation:</strong> %%OCCUPATION%%</p>
</body></html>";
var completeHtml = template
.Replace("%%NAME%%", person.Name)
.Replace("%%AGE%%", person.Age.ToString())
.Replace("%%EMAIL%%", person.Email)
.Replace("%%OCCUPATION%%", person.Occupation);
大多數情況下,建議使用命名佔位符。但是,請記住,如果您插入的值替換了佔位符,則需要對其進行轉義。
模板引擎
當您的範本非常複雜和/或需要可重複使用部分時,命名佔位符可能不太方便。不妨試試使用 Handlebars.Net 等模板引擎。
以下範例使用了不同的模板和程式碼,但產生了相同的 HTML:
var template = @"<head><title>{{name}}'s Profile</title></head>
<body>
<h1>{{name}}</h1>
<p><strong>Age:</strong> {{age}}</p>
<p><strong>Email:</strong> {{email}}</p>
<p><strong>Occupation:</strong> {{occupation}}</p>
</body></html>";
var compiledTemplate = Handlebars.Compile(template);
var completeHtml = compiledTemplate(person);
Handlebars.Net 範本不包含邏輯。如果您覺得這太局限,可以試試 Scriban。它提供了條件語句、循環語句、表達式、函數呼叫等更多功能。
位置佔位符
這些與命名佔位符非常相似,但它們使用位置編號而不是名稱。您可能在 string.Format 方法呼叫中看過它們。
var template = @"<head><title>{0}'s Profile</title></head>
<body>
<h1>{1}</h1>
<p><strong>Age:</strong> {2}</p>
<p><strong>Email:</strong> {3}</p>
<p><strong>Occupation:</strong> {4}</p>
</body></html>";
var completeHtml = string.Format(
template, person.Name, person.Name,
person.Age, person.Email, person.Occupation);
我建議您除了最簡單的情況外,不要使用位置佔位符。原因如下:
- 當範本多次使用某個值時,您必須在呼叫中多次提供該值。
- 很容易在模板中更改順序,但忘記更新程式碼。
將 ASPX 轉換為 PDF
使用 Docotic.Pdf 和免費的 HtmlToPdf 插件,即可將 ASPX 轉換為 PDF。流程非常簡單:
- 提供一個
Render方法的實現,用於收集產生的 HTML。 - 讓 ASP.NET 引擎透過執行伺服器端程式碼和控制項來產生 ASPX 頁面的 HTML。
- 將收集到的 HTML 轉換為 PDF,並在更新後的回應中傳回該 PDF。
請查看範例程式碼,以了解如何在 ASP.NET Web Forms 應用程式中從 ASPX 頁面產生 PDF。此範例應用程式示範了上述過程,並產生了 HTML 或 PDF 格式的發票。您可以使用相同的方法產生報表、報表和其他文件的高保真 PDF 版本。
將 SVG 轉換為 PDF
使用 Docotic.Pdf 函式庫的 HtmlToPdf 插件,可以將 SVG 轉換為向量 PDF。您可以使用 HtmlConverter 類別作為 SVG 到 PDF 的轉換器。以下 C# 程式碼展示了一種轉換方法:
using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/team.svg");
using var pdf = await converter.CreatePdfAsync(uri);
pdf.Save("output.pdf");
上述程式碼的運行結果是一個高品質的向量 PDF 檔案。 HtmlToPdf 外掛程式提供的轉換器會根據 SVG 檔案中指定的寬度和高度來決定寬高比。根據 SVG 檔案的大小,轉換器可能會按比例縮放 SVG 檔案以適應 PDF 頁面。
影響輸出大小的選項
若要產生不同尺寸的 PDF,請設定頁面大小和/或邊距。轉換後的 SVG 仍可能按比例縮放。
另一種方法是在 HTML 程式碼中指定 SVG 的寬度和/或高度,然後轉換該 HTML 程式碼。輸出結果中,影像將具有指定的大小。如果尺寸大於 PDF 頁面,則圖像的某些部分將不可見。
using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/images/team.svg' width='200' />";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");
SVG 檔轉 PDF
若要將 SVG 檔案轉換為 PDF,請建立一個名為 Uri 的文件,並將其傳遞給 CreatePdfAsync 方法。另一種方法是建立一個包含 img 標籤的 HTML 程式碼片段,並將其與 CreatePdfFromStringAsync 方法一起使用。如果在 HTML 程式碼中使用相對路徑,請透過轉換選項提供基本 URL。
若要將多個 SVG 檔案轉換為 PDF,請建立一個包含多個 img 標籤的 HTML 程式碼片段,並將其與 CreatePdfFromStringAsync 方法一起使用。如果所有文件都位於同一資料夾中,建議在 HTML 程式碼中使用相對路徑並提供基本 URL。
在 PDF 中新增 SVG
首先使用 HtmlConverter 方法之一將 SVG 轉換為 PDF。
using var converter = await HtmlConverter.CreateAsync();
var uri = new Uri("https://bitmiracle.com/images/quote.svg");
using var svgPdf = await converter.CreatePdfAsync(uri);
然後,您可以將產生的 PDF 內容疊加到另一個文件之上,或將該文件與另一個 PDF 合併。
若要將 SVG 疊加到 PDF 上,請從轉換後的文件的第一頁建立一個 XObject,並將該 XObject 繪製到另一個文件的 PDF 頁面上。例如:
using var pdf = new PdfDocument("some-other.pdf");
var xObj = pdf.CreateXObject(svgPdf.Pages[0]);
pdf.Pages[0].Canvas.DrawXObject(xObj, 0, 0);
pdf.Save("output.pdf");
若要將 SVG 合併到 PDF 中,請使用可用的合併方法之一將轉換後的 PDF 文件與另一個 PDF 合併。
將 WEBP 轉換為 PDF
WebP 是一種網頁格式,因此您可以使用 Docotic.Pdf 及其 HtmlToPdf 外掛程式將其轉換為 PDF。以下 C# 程式碼示範如何高品質地將 WebP 轉換為 PDF:
using var converter = await HtmlConverter.CreateAsync();
var html = $"<img src='https://bitmiracle.com/pdf-library/images/edit/reorder-pages.webp'/>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");
上面的程式碼沒有為 img 標籤指定 width 或 height 屬性,但最好還是加上。請注意,如果您指定的影像尺寸大於 PDF 頁面,則影像的某些部分將無法顯示。
由於 WebP 是光柵格式,因此無法很好地縮放。我建議您使用預期所需的最大尺寸和解析度的影像。
若要將 WebP 檔案轉換為 PDF,請使用相同的程式碼。如果您的 HTML 使用相對路徑,請透過 載入選項 提供基本 URL。轉換本機映像時,請使用檔案 Uri 作為基本 URL。
使用 XSLT 將 XML 轉換為 PDF
若要將 XML 轉換為 PDF,請先使用 XSLT 轉換將 XML 轉換為 HTML。然後使用 Docotic.Pdf 及其 HtmlToPdf 外掛程式將產生的 HTML 轉換為 PDF。
以下是 C# XML 轉 PDF 轉換程式碼:
var transform = CreateTransform("invoice.xsl");
var html = TransformToHtml("invoice.xml", transform);
using var converter = await HtmlConverter.CreateAsync();
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("invoice.pdf");
程式碼如下:
- 第一行建立一個 XSLT 轉換物件。
- 第二行將 XML 檔案轉換為 HTML 文件。
- 其餘各行將轉換結果(HTML 字串)轉換為 PDF。
讓我們仔細看看前兩點。第三點在本節中有詳細介紹。
建立 XSLT 轉換
轉換過程的第一步是建立 XSLT 轉換物件。以下程式碼示範如何建立這樣的物件:
public static XslCompiledTransform CreateTransform(string xsltFileName)
{
var transform = new XslCompiledTransform();
transform.Load(xsltFileName);
return transform;
}
顧名思義,XslCompiledTransform 會編譯提供的樣式表並從中產生 IL 程式碼。如果您的程式碼需要批次將 XML 轉換為 PDF,請重複使用同一個轉換物件以提高效能。
將 XML 轉換為 HTML
第二步是使用上一個步驟建立的 XSLT 轉換物件從 XML 產生 HTML。
public static string TransformToHtml(string xmlFileName, XslCompiledTransform transform)
{
using var xmlReader = XmlReader.Create(xmlFileName);
using var sw = new StringWriter();
using var writer = XmlWriter.Create(sw, transform.OutputSettings);
transform.Transform(xmlReader, null, writer);
return sw.ToString();
}
程式碼使用 XmlReader 和 XmlWriter,因為它們非常適合處理大型 XML 文件,並且有助於保持較低的記憶體使用量。
XML 轉 PDF 的範例程式碼
我們的範例庫包含一個範例應用程式的 C# 和 VB.NET 版本,該應用程式可以將 XML 發票轉換為 PDF。範例應用程式包含一個 XML 發票範例和對應的 XSLT 樣式表。
當您在現代瀏覽器中造訪傳回 XML 的 URL 時,瀏覽器可以自動套用關聯的 XSLT(如果存在)來產生並顯示可讀的 HTML。這僅在 XML 檔案和 XSLT 檔案託管在同一台伺服器上時才有效。為了防止跨網域要求,當您直接從本機檔案系統開啟 XML 檔案時,瀏覽器將不會載入或套用樣式表。
建立 PDF 的權衡取捨和替代方法
HTML 轉換 PDF API 並非使用 Docotic.Pdf 產生 PDF 的唯一方法,也並非總是最有效的。本節概述了其他方法,以幫助您根據具體情況選擇合適的方案。

何時選擇 HTML 轉 PDF?
如果您的團隊已經使用 HTML/CSS 建立文檔,請選擇 HTML 轉 PDF 的方法。尤其當您的文件類似網頁時,例如發票、採購訂單、證書、收據等。
HtmlToPdf 外掛程式可讓團隊重複使用現有的 HTML/CSS 模板,並受益於高保真佈局和渲染功能。使用此插件,您可以以最快的速度獲得高品質的 PDF 輸出。
需要注意的局限性
HTML 轉 PDF API 使用 Google Chrome 的 HTML 渲染引擎。該引擎功能強大,但會帶來一定的開銷。例如,典型的 HTML 轉 PDF 轉換會比直接在 PDF 頁面畫布上繪製消耗更多的 CPU 和記憶體。這種開銷會降低大批量產生的速度。
此外,瀏覽器引擎也會增加執行時間佔用空間,這在資源受限的 Docker 映像或資源佔用較高的環境中可能並不理想。例如,在對記憶體消耗和執行時間有嚴格限制的無伺服器環境中,該 API 可能無法正常運作。
在 Docotic.Pdf 中產生 PDF 的其他方法
Docotic.Pdf 函式庫也提供了其他幾種產生文件的方法,每種方法都適合不同的需求:
-
透過 Canvas API 直接產生 PDF
非常適合用於結構化、可預測的佈局,例如票據、標籤或表單。提供卓越的效能,並可完全控制座標、字體和內容位置。 -
基於模板的PDF生成
在處理已批准且符合合規性要求的範本時,這通常是最佳選擇。您可以從現有的 PDF 檔案開始,填寫欄位、取代佔位符,並根據需要附加相關文件。 -
使用佈局 API 產生 PDF
提供頁面、容器、圖像、文字段落和其他佈局元素等建置模組。您可以使用流暢的 API 完全以程式碼形式描述 PDF 佈局,程式庫會根據您的佈局產生 PDF。 -
由其他 PDF 和圖像合成
提供一種輕量級的方法,可將現有 PDF 和影像組裝成報表、報告、文件包和其他文件。您可以將影像轉換為 PDF 頁面、合併多個 PDF、追加頁面或重複使用片段。
與其他 HTML 轉 PDF 解決方案的比較
為了幫助您選擇合適的 .NET HTML 轉 PDF 庫,以下資訊介紹了帶有 HtmlToPdf 插件的 Docotic.Pdf 與其他流行的 HTML 轉 PDF 解決方案的比較情況。
主要對比要點
大多數基於瀏覽器的解決方案都能提供高品質的渲染效果,並完全支援現代的HTML、CSS和JavaScript。然而,它們之間也存在一些重要的差異。
| 解決方案 | 何時使用 | 最適合 |
|---|---|---|
| 使用 HtmlToPdf 插件的 Docotic.Pdf | 以像素級完美的視覺保真度轉換報告、發票和收據 | 需同時具備 HTML 轉 PDF 和 PDF 編輯功能的專業級軟體,並提供專業技術支援 |
| Puppeteer | 當需要使用瀏覽器層級的保真度進行現代 HTML/CSS/JS 渲染,並且只需要 HTML 轉 PDF 輸出時 | 以像素級精度產生 HTML 到 PDF 文件,並要求免費或開源 |
| IronPDF | 當您的團隊擁有 Iron Suite 授權或之前使用過 IronPDF 時 | 依賴多個 Iron Software 元件的團隊 |
| wkhtmltopdf | 當需要相對輕量級的資源佔用,且您的 HTML/CSS 程式碼簡潔,不包含外部或不受信任的引用 | 與已使用 wkhtmltopdf 的系統保持相容性 |
詳細比較
請查看表格中的信息,以了解全貌並得出自己的結論。
| 使用 HtmlToPdf 處理 Docot.Pdf | Puppeteer | IronPDF | wkhtmltopdf | |
|---|---|---|---|---|
| 引擎 | Headless Chrome | Headless Chrome / Chromium | Headless Chrome | 舊版 Qt WebKit |
| 渲染保真度 | 像素級完美 | 像素級完美 | 像素級完美 | 像素級完美,但也存在一些怪癖和局限性 |
| HTML5 支援 | 滿的 | 滿的 | 滿的 | 部分且有限 |
| CSS3 支持 | 滿的 | 滿的 | 滿的 | 極為有限 |
| JavaScript 支援 | 滿的 | 滿的 | 滿的 | 不完整且已過時 |
| 與 .NET 程式碼集成 | 非同步 .NET API | 使用 PuppeteerSharp 時採用非同步 .NET API;否則採用 Node.js 腳本。 | 非同步 .NET API | 命令列進程或 C# 封裝庫(例如 DinkToPdf) |
| 除了 HTML 轉換之外的 PDF 功能 | 廣泛的 | 沒有任何 | 有限的 | 沒有任何 |
| 支援 | 商業的。可提供優先支援。 | 社區。 PuppeteerSharp 用戶可獲得基於贊助的優先支援。 | 商業的。可提供優先支援。 | 社區。沒有正式的支援管道。 |
| 維護狀態 | 積極維護 | 積極維護 | 積極維護 | 已停止維護 |
| 執照 | 商業的。符合條件的用例可使用免費許可。 | Apache-2.0;MIT 許可,適用於 PuppeteerSharp | 商業的 | LGPL-3.0;DinkToPdf 的 MIT 許可 |
| 再分發權 | 所有許可均免版稅 | 所有許可均免版稅 | 不包含在內;需單獨購買。 | 所有許可均免版稅 |
| 開發者許可證 | 擁有所有授權的無限開發者 | 擁有所有授權的無限開發者 | 因許可證級別而異;只有最高級別的許可證才無限制。 | 擁有所有授權的無限開發者 |
| 線上軟體許可證驗證 | 無需線上驗證 | 未進行許可證驗證 | 除高級許可證外,所有許可證都需要它。 | 未進行許可證驗證 |
結論
Docotic.Pdf 及其 HtmlToPdf 外掛程式提供可靠、高品質的 HTML 轉 PDF 功能,並配備功能齊全的 PDF API。該程式庫非常適合從 HTML 產生 PDF 報告、發票、收據和其他商務文檔,並能完美保留像素級的視覺效果。
該插件提供完全本地運行的非同步 .NET API。您的資料始終保留在您的伺服器上,讓您可以完全掌控安全性和隱私性。
除了 HTML 轉 PDF 功能外,Docotic.Pdf 還可以為產生的 PDF 新增密碼保護,並使用數位簽章(包括 LTV 簽章)進行簽章。
您可以透過合併多個產生的 PDF 來組裝最終文件。如果 HTML 轉換或合併後 PDF 文件過大,則該庫可以刪除文件中的重複對象,並應用其他方法來減小文件大小。為了改善閱讀體驗,Docotic.Pdf 還可以最佳化 PDF 用於 Fast Web View(線性化 PDF)。
後續步驟:
常見問題解答
如何為 .NET 選擇合適的 HTML 轉 PDF 庫?
在選擇庫之前,請先定義並收集您的需求。如果您事先知道某個候選庫無法合併轉換後的 PDF 文件,而您的解決方案又需要此功能,那麼在評估過程中就能節省時間。請參閱比較部分,以了解常用的 .NET HTML 轉 PDF 庫的比較資訊。
為什麼我的HTML程式碼在PDF中無法正確渲染?
如果您的 HTML 程式碼在 Google Chrome 瀏覽器中顯示正常,但在產生的 PDF 檔案中顯示異常,請檢查轉換選項。確保頁面寬度足以容納所有內容。 HTML 程式碼可能還需要在轉換前執行 JavaScript 程式碼。
為什麼要使用 HTML 模板而不是直接使用 PDF API?
使用 HTML 範本可以讓您的解決方案在文件佈局方面非常靈活。您可以利用 HTML 和 CSS 強大的樣式功能輕鬆變更 PDF 的外觀。此外,您無需使用 PDF API 來複製線上文件的設計。
如何將ASPX轉換為PDF?
若要將 ASPX 轉換為 PDF,請讓 ASP.NET 引擎為 ASPX 頁面產生 HTML,然後使用 Docotic.Pdf 函式庫將該 HTML 轉換為 PDF。更多詳細資訊請參閱相關章節。
如何將SVG影像疊加到PDF上?
若要將 SVG 疊加到 PDF 上,請先從 SVG 產生 PDF,然後從產生的文件的第一頁建立一個 XObject。由於 XObject 具有透明背景,因此您可以將其放置在另一個文件的 PDF 頁面上。
如何為生成的PDF文件添加浮水印?
若要為 HTML 產生的 PDF 文件新增浮水印,請建立 XObject 對象,向其中填入浮水印內容,然後將該 XObject 對象繪製在文件頁面上方。水印可以使用向量圖形、圖像和文字。
Docotic.pdf 比 wkhtmltopdf 好嗎?
Docotic.Pdf 完全支援現代 HTML、CSS 和 JavaScript,而 wkhtmltopdf 對現代 Web 文件的渲染效果往往不一致。此外,Docotic.Pdf 提供的 API 功能不僅限於 HTML 轉 PDF。例如,該程式庫可以使用支援 LTV 的數位簽名對 PDF 進行簽名,而 wkhtmltopdf 只能轉換 HTML。