該頁面可以包含自動翻譯的文字。

適用於 .NET 的 HTML 轉 PDF

您可以使用 Docotic.Pdf 函式庫將 HTML 轉換為 PDF。此函式庫的免費 HtmlToPdf 增益集可讓您將 HTML、SVG、WEBP 及其他網頁格式轉換為 PDF。

本指南概述了此增益集提供的 HTML 轉 PDF 功能,並附上可提供相關主題更多細節的頁面連結。

HTML 轉 PDF 函式庫內部流程示意圖。HTML 文件進入函式庫,接著產生 PDF 輸出。

C# 中 HTML 轉 PDF 的基礎知識

您需要 HtmlToPdf 增益集、一段轉換程式碼,以及授權金鑰。您可以先使用免費試用金鑰。

從 NuGet 安裝增益集

Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf

這是建議的做法,因為它會自動處理相依性與更新。您也可以從包含 Docotic.Pdf 二進位檔的 zip 手動安裝增益集,雖然這樣更複雜且更容易出錯。

取得授權金鑰

若要試用此函式庫,請從 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 與其他網頁格式(例如 SVG)產生像素級精確的 PDF 文件。使用此函式庫重用現有 HTML 內容也很容易。

此轉換器使用 Google Chrome 呈現引擎。這表示它具有與頂級網頁瀏覽器之一相同等級的網頁標準相容性。

您可以使用 Docotic.Pdf 從非常複雜的版面配置、現代 CSS、JavaScript 與影像產生 PDF。對於響應式網頁設計也有非常好的支援。

API 架構概觀

只有在將 Docotic.Pdf 與免費的 HtmlToPdf 增益集 一起使用時,HTML 轉 PDF API 才可用。

此增益集提供僅支援非同步的 API。我們將其設計為可搭配 async 事件處理常式與 async 方法運作。這種設計可讓長時間執行的工作順利處理,而媒體轉換就是這類工作的理想範例。

.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。

轉換期間會發生什麼事?

預設情況下,一次轉換包含以下階段:

  1. 您的程式碼呼叫 HtmlConverter 類別CreateAsync 方法。
  2. 增益集會檢查目前工作目錄中的 .local-chromium 資料夾內是否存在合適版本的 Google Chrome。
  3. 如果沒有合適版本,增益集會下載一個版本並將其解壓到 .local-chromium 資料夾中。
  4. 當您的程式碼呼叫 CreatePdfAsyncCreatePdfFromStringAsync 方法時,增益集會使用 Google Chrome 載入提供的 HTML。
  5. 當內容準備好轉換時,增益集會指示瀏覽器產生 PDF。
  6. Google Chrome 會使用 Chromium 的呈現能力產生 PDF。
  7. 增益集會將包含產生之 PDF 的 PdfDocument 傳回給您的程式碼。

雲端平台與 Docker 映像

HtmlToPdf 增益集支援 Azure 與 AWS 雲端平台,包括無伺服器環境。您也可以在 Docker 容器中使用 HTML 轉 PDF API。支援的環境如下:

  • Azure: Azure Functions、Azure App Service、Azure VPS
  • Amazon Web Services: AWS ECS、Amazon EC2
  • Docker: Windows 與 Linux 容器。

此函式庫與增益集完整支援動態硬體變更、自動擴縮及其他雲原生執行階段功能。

如需更多資訊,請參閱有關在 雲端與 Docker 映像中執行 此增益集的文章。

在大多數雲端情境中,需要非綁定授權。授權常見問題說明如何選擇 適用於雲端應用程式的授權

如何從 HTML 範本產生 PDF

請依照以下簡單步驟:

  1. 取得範本資料。
  2. 使用資料填入範本以產生完整的 HTML。
  3. 使用 Docotic.Pdf 將完整 HTML 轉換為 PDF。

圖示:如何從 HTML 範本產生 PDF。預留資料會在轉換為 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。

將 SVG 加入 PDF

先使用其中一個 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 標籤指定 widthheight 屬性,但建議加上這些屬性。請注意,如果您指定的影像大小大於 PDF 頁面,影像的部分內容將不可見。

由於 WebP 是點陣格式,因此放大效果不佳。我建議使用您預期所需的最大尺寸與解析度的影像。

若要將 WebP 檔案轉換為 PDF,請使用相同程式碼。如果您的 HTML 使用相對路徑,請透過載入選項提供基底 URL。轉換本機影像時,請使用檔案 Uri 作為基底 URL。

使用 XSLT 將 XML 轉 PDF

若要將 XML 轉換為 PDF,請先使用 XSLT 轉換將 XML 轉為 HTML。接著使用搭配 HtmlToPdf 增益集的 Docotic.Pdf,將產生的 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();
}

此程式碼使用 XmlReaderXmlWriter,因為它們非常適合處理大型 XML 檔案,並有助於降低記憶體使用量。

XML 轉 PDF 轉換範例程式碼

我們的範例存放庫包含 C# 與 VB.NET 版本的示範應用程式,可將XML 發票轉換為 PDF。該範例應用程式包含一個 XML 發票範例及對應的 XSLT 樣式表。

當您在現代瀏覽器中瀏覽回傳 XML 的 URL 時,瀏覽器可以自動套用相關聯的 XSLT(如果存在),以產生並顯示可讀的 HTML。只有當 XML 與 XSLT 檔案都託管在同一台伺服器上時,這才有效。為避免跨來源請求,當您直接從本機檔案系統開啟 XML 檔案時,瀏覽器不會載入或套用該樣式表。

取捨與建立 PDF 的替代方式

HTML 轉 PDF API 並不是使用 Docotic.Pdf 產生 PDF 的唯一方式,而且也不一定是最有效率的方式。本節說明替代方案,協助您為情境選擇正確做法。

圖示:建立 PDF 的方式:使用 HTML 轉 PDF、Canvas API、以範本為基礎的產生、Layout API,以及組合。

何時應選擇 HTML 轉 PDF

當您的團隊已經使用 HTML/CSS 建立文件時,請選擇 HTML 轉 PDF 方法。特別是當您的文件外觀類似網頁時:發票、採購訂單、證書、收據等等。

HtmlToPdf 增益集可讓團隊重用既有的 HTML/CSS 範本,並受益於高保真的版面配置與呈現能力。使用此增益集,取得高品質 PDF 輸出的路徑可能是最快的。

需要注意的限制

HTML 轉 PDF API 使用 Google Chrome 的 HTML 呈現引擎。此引擎功能強大,但也伴隨額外負擔。一般的 HTML 轉 PDF 轉換所消耗的 CPU 與記憶體,會比直接在 PDF 頁面的 Canvas 上繪製更多。例如,這種額外負擔可能會拖慢大量批次產生的速度。

瀏覽器引擎也會增加執行階段占用空間,這在精簡 Docker 映像或受限環境中可能不理想。例如,在記憶體消耗與執行時間限制非常嚴格的無伺服器環境中,API 可能無法運作。

Docotic.Pdf 中產生 PDF 的其他方式

Docotic.Pdf 函式庫提供數種其他建立文件的方法,各自適用於不同需求:

  • 直接透過 Canvas API 產生 PDF
    適合票券、標籤或表單等結構化、可預測的版面。提供 最高效能 以及對座標、排版和內容放置的完整控制。

  • 以範本為基礎的 PDF 產生
    當您處理已核准、受合規控制的範本時,通常是最佳選擇。您從既有 PDF 出發,填入欄位、替換預留位置,並視需要 附加相關文件

  • 使用 Layout 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 的 Docotic.Pdf Puppeteer IronPDF wkhtmltopdf
引擎 無頭 Chrome 無頭 Chrome / Chromium 無頭 Chrome 舊版 Qt WebKit
呈現保真度 像素級精確 像素級精確 像素級精確 像素級精確,但有怪異行為與限制
HTML5 支援 完整 完整 完整 部分且有限
CSS3 支援 完整 完整 完整 極度有限
JavaScript 支援 完整 完整 完整 部分且過時
與 .NET 程式碼整合 非同步 .NET API 使用 PuppeteerSharp 時為非同步 .NET API;否則為 Node.js 腳本。 非同步 .NET API 命令列程序或 C# 包裝函式庫(例如 DinkToPdf)
除 HTML 轉換之外的 PDF 功能 豐富 有限
支援類型 為潛在客戶與客戶提供專業支援 僅社群支援 為潛在客戶與客戶提供專業支援 僅社群支援
支援可用性 保證回應時間;高階授權提供優先支援 志工回覆;PuppeteerSharp 可提供基於贊助的優先支援 保證回應時間;高階授權提供優先支援 沒有正式支援管道
維護狀態 持續維護中 持續維護中 持續維護中 已不再維護
授權 商業授權,並提供 免費授權 供符合資格的使用案例 Apache-2.0;PuppeteerSharp 為 MIT 商業授權 LGPL-3.0;DinkToPdf 為 MIT
重新散發權利 所有授權皆可免版稅 所有授權皆可免版稅 不包含;需另行購買 所有授權皆可免版稅
開發者授權 所有授權皆不限開發者數量 所有授權皆不限開發者數量 依授權等級而異;只有最高等級授權才不限數量 所有授權皆不限開發者數量
線上授權驗證 不需要線上驗證 不會進行授權驗證 除高級授權外皆需驗證 不會進行授權驗證

結論

搭配 HtmlToPdf 增益集的 Docotic.Pdf 可提供可靠、高品質的 HTML 轉 PDF 轉換,同時具備完整功能的 PDF API。此函式庫非常適合從 HTML 產生 PDF 報表、發票、收據及其他商業文件,並保留像素級精確的視覺保真度。

此增益集提供可完全在內部部署環境中執行的非同步 .NET API。您的資料永遠不會離開伺服器,因此您可完全掌控安全性與隱私。

除了 HTML 轉 PDF 之外,Docotic.Pdf 也可以新增密碼保護到產生的 PDF,並使用數位簽章進行簽署,包括支援 LTV 的簽章。

您可以透過合併多個已產生的 PDF 來組合最終文件。如果 PDF 在 HTML 轉換或合併後變得過大,函式庫可以移除檔案中的重複物件,並採用其他方法來縮小檔案大小。為了改善閱讀體驗,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 在現代網頁文件上常會產生不一致的呈現效果。此外,Docotic.Pdf 提供超出 HTML 轉 PDF 之外的 API。舉例來說,此函式庫可使用支援 LTV 的數位簽章為 PDF 簽署,而 wkhtmltopdf 只能轉換 HTML。