在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
IronPDF 和 iText 7 (前稱為iTextSharp) 都能提供生成、操作、和 列印 PDF 在 .NET 及 .NET Core 中。
哪個 C# PDF程式庫 最適合您的 .NET 專案?本文的目標是幫助讀者做出正確且明智的決定。
HtmlConverter.ConvertToPDF
將 HTML 檔案轉換為 PDF 檔案的方法IronPDF 是:
iText (iTextSharp) 是:**
iTextSharp 已有至少 6 年的歷史,基於開源的 Java 程式碼庫 iText,因此仍有一些 Java 的風格。首次學習 Java 的開發者可能會覺得這個庫很熟悉。
IronPDF 是一個 .NET 為主的庫,API 設計的重點是易於在 Visual Studio 中使用。.NET 已經存在將近 20 年,不斷成長和擴展,開啟了許多可能性,而 IronPDF 就是為了利用這些可能性而設計的。它允許我們在 .NET 框架項目中創建和操作 PDF 文件。你可以下載 IronPDF 作為 iTextSharp 替代方案iText 和 IronPDF 的渲染 API 非常不同。讓我們比較每個代碼段,以便在 PDF 文件中添加頁眉和頁腳。
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
}
Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
}
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
document.SetTopMargin(50)
document.SetBottomMargin(50)
通過快速瀏覽代碼,您可以看到IronPDF是實用的,基於常見的終端用戶需求。
iText是一個低層級的庫,專注於繪圖API,我們可以將對象、形狀和文本添加到頁面上。
iTextSharp.dll主要使用編程模型來渲染PDF。在使用iTextSharp PDF庫時,每段PDF文本、圖形、表格或線條都是“繪製”或繪圖到PDF上的。這個API看起來是低層次的,並專注於PDF文檔標準。這種模型允許精確操作,但可能需要開發者了解一些PDF的工作原理。與現有設計風格或網頁資產密切匹配可能需要一些迭代和閱讀。 iTextSharp 文件ation延續其傳統,方法學和程式介面具有明顯的 Java 風格。
相比之下,IronPDF 使用完整嵌入式網頁瀏覽器渲染器來... 將 HTML 轉換為 PDF. 以下短文 (1 行和 2 行) C# 代碼範例開發人員可以從現有或新的 HTML、圖片和 CSS 生成 PDF。這讓開發人員能夠緊密協作現有的網頁資源,也可以在專案進行中與設計師並行工作。iText 確實包含 C# .NET 的 HTML 轉 PDF 功能,儘管這似乎並不是該庫的主要特點。
繼續閱讀,以了解 IronPDF 和 iTextSharp 幫助開發人員達成以下目標的不同方式的更多比較細節: 從現有的網址創建PDF
授權選項對開發者的項目也是一個重要因素。iTextSharp 是在 AGPL 授權協議下的開源軟體。在 AGLP 授權下,任何使用包含 iTextSharp 的應用程序的部分內容者 (甚至在公司网络或互联网上) 可能有權獲得應用程式完整原始碼的完整副本。這對於學術工作非常有利。如果我們希望在商業應用中使用iTextSharp,最好與iText聯繫並 請他們報價 iText 商業使用的價格鐵PDF 是 開發免費使用,然後可以 授權用於商業部署 以公開發布的合理價格,起價為 $749。
這就是這兩個庫的比較情形:
通過內建的完整網絡瀏覽器將HTML轉換為PDF | 通過pdfHTML附加元件將基本HTML轉換為PDF |
渲染焦點:嵌入式網頁瀏覽器 | 渲染重點:程式化繪圖模型 |
IronPDF具有明確的授權,並且公佈了價格。 | AGPL! 商業用途價格未公布。 |
易於使用 .NET 首設計進行編碼 | 基於 Java API |
不適用於學術作業和課程 | 非常適合學術作業和研究 |
IronPDF 使 .NET 和 .NET Core 開發人員能夠輕鬆地使用 C#、F# 和 VB.NET 在 .NET Core 和 .NET Framework 中生成、合併、拆分、編輯和提取 PDF 內容以及 建立PDF 從 HTML、ASPX、CSS、JS 和圖片檔案。
它使用完全嵌入的網頁瀏覽器將 HTML 轉換為 PDF。這使得開發者能夠從 HTML、圖片和 CSS 生成 PDF,並且可以與現有的網頁資源密切合作,還可以在項目過程中與設計師並行工作。
IronPDF 真正專注於開發人員的生產力。該庫將許多常見的複雜 PDF 程式碼任務簡化為便利的 C# 方法,以提取文本和圖像、簽署 PDF、使用新的 HTML 編輯 PDF 等,而開發人員無需學習 PDF 文件標準即可了解如何實現最佳結果。
這 iTextSharp.dll 使用主要程式模型來渲染PDF,並且擁有強大且與PDF標準緊密相隨的先進PDF操作API。
讓我們通過創建一個示例項目來比較這兩個庫:
請使用以下步驟來建立 ASP.NET 網站:
開啟 Visual Studio
點擊文件 > 新建項目
在項目類型列表框中選擇 Visual C# 下的 Web
現在我們有一些可以使用的東西了。讓我們安裝 IronPDF。
為了使用 IronPDF,你首先需要安裝它。 (免費)有兩個選項:
讓我們仔細看看。
立即開始在您的專案中使用IronPDF,並享受免費試用。
查看 IronPDF 上 Nuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。
Install-Package IronPdf
請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip
手動安裝到您的項目中
下載DLL有三種方法可以安裝 IronPDF NuGet 套件:
Visual Studio
開發者命令提示字元
讓我們一個一個來。
Visual Studio 提供 NuGet 套件管理器,讓您在專案中安裝 NuGet 套件。您可以透過專案選單存取,或在方案總管中右鍵點擊您的專案。這兩種選項如圖 3 和圖 4 所示。
在你從任一選項點擊管理 NuGet 套件之後,瀏覽 IronPDF 套件並按照圖 5 所示進行安裝。
以下步驟打開開發者命令提示字元並安裝 IronPDF NuGet 套件
為了下載 NuGet 套件:
點擊「下載封包」
封包下載完成後,雙擊開啟
第二種安裝 IronPDF 的方法是通過 直接下載.
在您的專案中按以下步驟引用庫:
現在您已經設置完成,我們可以在設置iTextSharp之後開始使用IronPDF庫中的一些很棒的功能。
有三種方式來 安裝 iTextSharp NuGet 套件,它們是:
我們一個一個來。
對於 Visual Studio,搜尋 iText 並安裝相關套件,如下所示。
或者,在開發者命令提示字元中 (如前所示,輸入以下命令)
或者,下載 iText 7 直接從他們的網站。
現在你已經建立了必要的專案,讓我們在程式碼中比較這兩個庫。
以下代碼下載網頁並將其轉換為PDF文件。
以下程式碼示範如何使用 IronPDF 直接從網站地址創建 PDF 文件。此範例還包含自訂頁首和頁尾。
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
// Create a PDF from any existing web page
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
}
/**
IronPDF URL to PDF
anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
// Create a PDF from any existing web page
var Renderer = new IronPdf.ChromePdfRenderer();
// Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50; //millimetres
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; //milliseconds
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
}
'''
'''IronPDF URL to PDF
'''anchor-ironpdf-website-to-pdf
'''*
Private Sub ExistingWebURL()
' Create a PDF from any existing web page
Dim Renderer = New IronPdf.ChromePdfRenderer()
' Create a PDF from an existing HTML
Renderer.RenderingOptions.MarginTop = 50 'millimetres
Renderer.RenderingOptions.MarginBottom = 50
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
}
Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
}
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Renderer.RenderingOptions.EnableJavaScript = True
Renderer.RenderingOptions.RenderDelay = 500 'milliseconds
Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
PDF.SaveAs("wikipedia.pdf")
End Sub
以下程式碼使用 iText7 從網站地址直接建立 PDF 文件,並添加頁眉和頁腳。
/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("wikipedia.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
document.Close();
}
/**
iText URL to PDF
anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("wikipedia.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.SetTopMargin(50);
document.SetBottomMargin(50);
document.Close();
}
'''
'''iText URL to PDF
'''anchor-itext-url-to-pdf
'''*
Private Sub ExistingWebURL()
'Initialize PDF writer
Dim writer As New PdfWriter("wikipedia.pdf")
'Initialize PDF document
Using pdf As New PdfDocument(writer)
Dim properties As New ConverterProperties()
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format")
Dim document As Document = HtmlConverter.ConvertToDocument(New FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties)
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
document.SetTopMargin(50)
document.SetBottomMargin(50)
document.Close()
End Using
End Sub
使用 iText 7,作者花了更長的時間編寫代碼來將給定 URL 的文件轉換為 PDF。需要兩行代碼:
MemoryStream wiki = GetStreamFromUrl("https://en.wikipedia.org/wiki/Tiger");
HtmlConverter.ConvertToPdf(wiki, new FileStream("wikipedia.pdf",FileMode.OpenOrCreate));
MemoryStream wiki = GetStreamFromUrl("https://en.wikipedia.org/wiki/Tiger");
HtmlConverter.ConvertToPdf(wiki, new FileStream("wikipedia.pdf",FileMode.OpenOrCreate));
Dim wiki As MemoryStream = GetStreamFromUrl("https://en.wikipedia.org/wiki/Tiger")
HtmlConverter.ConvertToPdf(wiki, New FileStream("wikipedia.pdf",FileMode.OpenOrCreate))
MemoryStream 物件和 FileStream 物件都必須設置屬性來創建。
讓我們來看看 IronPDF。
IronPDF 需要三行代碼 (如果您在程式碼段落的底部包含 SaveAs 方法), 但除此之外只需要兩行:
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf")
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf")
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PDF.SaveAs("wikipedia.pdf")
無需 FileStream 或額外的 .NET 對象,因為所有功能似乎都內建於 IronPDF 的 RenderUrlAsPdf 方法中。
我現在包括一個輸出比較,因為這應適用於在本教程中我們將進行的所有後續練習。
通過這段代碼,我們已經轉換了維基百科中的老虎部分 網頁轉PDF 與這兩個函式庫。
使用 iText 庫輸出的文件有 49 頁。它沒有渲染 JavaScript 或 CSS。以下是結果輸出:
使用 IronPDF 的庫輸出的文件有 12 頁。它能很好地渲染 JavaScript 和 CSS。生成的輸出如下所示:
一張圖片勝過千言萬語……IronPDF 在 HTML 到 PDF 渲染方面表現出色。
下面的代碼會創建一個 PDF 文檔並在其中打印 HTML 字串。
以下程式碼使用IronPDF生成包含HTML輸入的PDF。
/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
/**
IronPDF HTML to PDF
anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
// Render any HTML fragment or document to HTML
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>" };
var OutputPath = "ChromePdfRenderer.pdf";
PDF.SaveAs(OutputPath);
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
}
'''
'''IronPDF HTML to PDF
'''anchor-ironpdf-document-from-html
'''*
Private Sub HTMLString()
' Render any HTML fragment or document to HTML
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
Dim OutputPath = "ChromePdfRenderer.pdf"
PDF.SaveAs(OutputPath)
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
End Sub
以下代碼使用 iText7 創建一個包含 HTML 文字的 PDF。
/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
/**
iText HTML to PDF
anchor-itext-html-to-pdf
**/
private void HTMLString()
{
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", new FileStream("ChromePdfRenderer.pdf", FileMode.Create));
}
'''
'''iText HTML to PDF
'''anchor-itext-html-to-pdf
'''*
Private Sub HTMLString()
HtmlConverter.ConvertToPdf("< h1 > Hello iText7 </ h1 >", New FileStream("ChromePdfRenderer.pdf", FileMode.Create))
End Sub
iText 再次使用 HtmlConverter.ConvertToPdf 調用來將 HTML 字串輸出為 PDF。
IronPDF 使用其 RenderHtmlAsPdf 方法,該方法專門設計用於處理 HTML 和 PDF。
兩個選項都非常快速而且直截了當,但 IronPDF 提供了大量對渲染過程的控制,甚至可以使用 HTML 向 PDF 頁面添加頁首和頁尾。
以下代碼從 ASPX 頁面生成 PDF 文件。
以下代碼使用 IronPDF 從 ASPX 文件中創建一個包含內容的 PDF。通過在 Page_Load 事件中添加一行代碼,Web 表單變成動態 PDF。IronPdf.AspxToPdf.RenderThisPageAsPdf
();`
/**
IronPDF ASPX to PDF
anchor-ironpdf-render-pdf-from-aspx
**/
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
/**
IronPDF ASPX to PDF
anchor-ironpdf-render-pdf-from-aspx
**/
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf();
}
'''
'''IronPDF ASPX to PDF
'''anchor-ironpdf-render-pdf-from-aspx
'''*
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf()
End Sub
iText7 的 pdfHTML 庫似乎不支援從 ASPX 網頁建立 PDF。這種功能需要在每個專案的基礎上編碼。
開發人員應該從框架獲取 HTML,然後 pdfHTML 插件會接受該 HTML 進行 PDF 轉換。
以下程式碼將 XML 轉換為 PDF
/**
IronPDF XML to PDF
anchor-ironpdf-creates-pdf-from-xml
**/
private void XMLtoPDF(string XSLT, string XML)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT)))
{
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML)))
{
transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// options, headers, and footers may be set there
// Render our XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf");
}
/**
IronPDF XML to PDF
anchor-ironpdf-creates-pdf-from-xml
**/
private void XMLtoPDF(string XSLT, string XML)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(XSLT)))
{
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(XML)))
{
transform.Transform(reader, null, results);
}
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// options, headers, and footers may be set there
// Render our XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf");
}
'''
'''IronPDF XML to PDF
'''anchor-ironpdf-creates-pdf-from-xml
'''*
Private Sub XMLtoPDF(ByVal XSLT As String, ByVal XML As String)
Dim transform As New XslCompiledTransform()
Using reader As XmlReader = XmlReader.Create(New StringReader(XSLT))
transform.Load(reader)
End Using
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(XML))
transform.Transform(reader, Nothing, results)
End Using
Dim Renderer As New IronPdf.ChromePdfRenderer()
' options, headers, and footers may be set there
' Render our XML as a PDF via XSLT
Renderer.RenderHtmlAsPdf(results.ToString()).SaveAs("XMLtoPDF.pdf")
End Sub
XSLT 文件的結構如下:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<p>Titles:
<xsl:for-each select="catalog/cd">
<xsl:value-of select="title"/>
<xsl:if test="position() < last()-1">
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="position()=last()-1">
<xsl:text>, and </xsl:text>
</xsl:if>
<xsl:if test="position()=last()">
<xsl:text>!</xsl:text>
</xsl:if>
</xsl:for-each>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<p>Titles:
<xsl:for-each select="catalog/cd">
<xsl:value-of select="title"/>
<xsl:if test="position() < last()-1">
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="position()=last()-1">
<xsl:text>, and </xsl:text>
</xsl:if>
<xsl:if test="position()=last()">
<xsl:text>!</xsl:text>
</xsl:if>
</xsl:for-each>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
iText 支援將 XML 轉換為 PDF 可能需要自訂開發工作。
以下代碼從外部來源獲取數據並相應地創建圖表。
以下程式碼使用 IronPDF 快速創建圖表並通過 HTML 到 PDF 設置頁面屬性。
/**
IronPDF Create Chart
anchor-ironpdf-chart-creation
**/
private void Chart()
{
var Renderer = new ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
PDF.SaveAs("chart.pdf");
}
/**
IronPDF Create Chart
anchor-ironpdf-chart-creation
**/
private void Chart()
{
var Renderer = new ChromePdfRenderer();
using var PDF = Renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
PDF.SaveAs("chart.pdf");
}
'''
'''IronPDF Create Chart
'''anchor-ironpdf-chart-creation
'''*
Private Sub Chart()
Dim Renderer = New ChromePdfRenderer()
Dim PDF = Renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
Renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape
PDF.SaveAs("chart.pdf")
End Sub
以下代碼使用 iText7 來創建圖表並設置屬性。我們可以看到程式設計的繪圖 API 風格。
/**
iText Create Chart
anchor-itext-c-charts
**/
private void Chart()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("chart.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://bl.ocks.org/mbostock/4062006");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.Close();
}
/**
iText Create Chart
anchor-itext-c-charts
**/
private void Chart()
{
//Initialize PDF writer
PdfWriter writer = new PdfWriter("chart.pdf");
//Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://bl.ocks.org/mbostock/4062006");
Document document = HtmlConverter.ConvertToDocument(new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
document.Close();
}
'''
'''iText Create Chart
'''anchor-itext-c-charts
'''*
Private Sub Chart()
'Initialize PDF writer
Dim writer As New PdfWriter("chart.pdf")
'Initialize PDF document
Using pdf As New PdfDocument(writer)
Dim properties As New ConverterProperties()
properties.SetBaseUri("https://bl.ocks.org/mbostock/4062006")
Dim document As Document = HtmlConverter.ConvertToDocument(New FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties)
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
document.Add(header)
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
document.Close()
End Using
End Sub
IronPDF 和 iText 許可選項之間最大的區別在於 iTextSharp 是根據 AGPL 許可協議的開源軟體。簡而言之 (如引用, "AGPL 授權與其他 GNU 授權不同,其專為網路軟體設計。你可以分發已修改的版本,但必須記錄更改和實施日期。與通常的 GNU 授權一樣,你必須以 AGPL 授權派生作品。它提供與 GPLv3 相同的限制和自由,但有一個額外條款,即源代碼必須隨著網頁發佈一起分發。由於網站和服務從來不是以傳統方式分發的,因此 AGPL 是網頁的 GPL。"
這意味著,如果應用程式以任何方式使用了 iTextSharp——即使是通過本地網絡或互聯網,那麼應用程式的完整原始碼必須對每個使用者免費開放。這對專案的最佳利益並不總是有利。
這種許可證通常用於希望保持學術性的高度學術作品,也用於旨在付費使用的開源專案,這些專案在學術環境之外部署軟體。AGPL 許可證協議的性質使開源 iTextSharp 許多商業用途的許可證困難,除非能夠與開發人員安排和合法協商獲得私人許可證。
另一方面,IronPDF 是一個公開的商業產品。 C# PDF程式庫開發過程中是免費的,並且始終可以獲得商業部署的許可。這種明確的許可模式不需要開發者學習 GNU / AGPL 許可模式的細節,反而可以專注於他們的項目。 授權可用 用於單個項目、單個開發者、代理機構和全球公司,及SaaS和OEM再分發。無需協商法律費用,僅直接授權。
IronPdf 是:
iText (iTextSharp) 是:**
我們創建了一個免費的 PDF 資源指南,以幫助在 .NET 中進行 PDF 開發更容易。此指南包含了常見功能的步驟說明,以及在您的項目中用 C# 和 VB.NET 操作、編輯、生成和保存 PDF 的範例。
下載指南