Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
IronPDF und iText 7 (früher bekannt als iTextSharp) bieten beide die Möglichkeit der Erzeugung, Bearbeitung und pDFs drucken in .NET und .NET Core.
Welche C# PDF-Bibliothek am besten für Ihr .NET-Projekt geeignet ist? Ziel dieses Artikels ist es, den Lesern zu helfen, eine sachgerechte und informierte Entscheidung zu treffen.
HtmlConverter.ConvertToPDF
methode zur Umwandlung einer HTML-Datei in eine PDF-DateiIronPDF ist:
Eine gute Wahl für pragmatische Programmierer, die eine Aufgabe erledigen wollen.
iText (iTextSharp) ist:
iTextSharp gibt es seit mindestens 6 Jahren. Es basiert auf einer quelloffenen Java-Codebasis namens iText und hat immer noch einen gewissen Java-Flair. Entwicklern, die Java zum ersten Mal erlernt haben, dürfte diese Bibliothek bekannt vorkommen.
IronPDF ist eine .NET-first-Bibliothek mit einer API, die auf eine einfache Verwendung in Visual Studio ausgelegt ist. .NET existiert seit fast 20 Jahren, wächst und expandiert ständig und eröffnet viele Möglichkeiten, die IronPDF nutzen soll. Es erlaubt uns, PDF-Dokumente in .NET-Framework-Projekten zu erstellen und zu manipulieren. Sie können IronPDF als iTextSharp Alternative.
Die Rendering-API von iText und IronPDF sind recht unterschiedlich. Vergleichen wir die einzelnen Codesegmente, um Kopf- und Fußzeilen zu einem PDF-Dokument hinzuzufügen.
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)
Ein kurzer Blick auf den Code zeigt, dass IronPDF pragmatisch ist und auf den üblichen Anforderungen der Endbenutzer basiert.
iText ist eine untergeordnete Bibliothek, die sich auf eine Zeichen-API konzentriert, mit der wir Objekte, Formen und Text zu Seiten hinzufügen können.
iTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs. Bei der Verwendung der iTextSharp PDF-Bibliothek wird jedes Stück PDF-Text, jede Grafik, jede Tabelle und jede Linie in eine PDF-Datei "geplottet" oder gezeichnet. Die API erscheint auf niedrigem Niveau und ist auf den PDF-Dokumentenstandard ausgerichtet. Dieses Modell ermöglicht zwar Präzision, erfordert aber, dass die Entwickler ein wenig über die Funktionsweise von PDFs lernen. Eine enge Abstimmung mit bestehenden Designstilen oder Web-Assets kann einige Iterationen und das Lesen der iTextSharp-Dokumentation. Die Methodik und die Programmschnittstelle sind entsprechend ihrem Erbe deutlich an Java angelehnt.
Im Gegensatz dazu verwendet IronPDF einen vollständig eingebetteten Webbrowser-Renderer, um hTML in PDF konvertieren. Nach kurzer (1- und 2-zeilig) C# Code-Beispielekönnen Entwickler PDFs aus vorhandenem oder neuem HTML, Bildern und CSS erzeugen. So können die Entwickler eng mit den vorhandenen Web-Assets zusammenarbeiten und während eines Projekts auch parallel mit den Designern arbeiten. iText enthält HTML to PDF-Funktionalität für C# .NET, obwohl dies offensichtlich nicht die wichtigste Funktion der Bibliothek ist.
Lesen Sie weiter, um mehr vergleichende Details über die verschiedenen Möglichkeiten zu erfahren, wie IronPDF und iTextSharp Entwicklern helfen können, die folgenden Ziele zu erreichen:
Lizenzierungsoptionen sind ebenfalls ein wichtiger Faktor für Entwicklerprojekte. iTextSharp ist Open Source unter der AGPL-Lizenzvereinbarung. Wenn eine AGLP-Lizenz vorliegt, darf jeder, der einen Teil einer Anwendung verwendet, die iTextSharp (auch über ein Firmennetz oder das Internet) kann ein Recht auf eine vollständige Kopie des Quellcodes der Anwendung haben. Dies eignet sich hervorragend für akademische Arbeiten. Wenn wir iTextSharp in kommerziellen Anwendungen verwenden möchten, ist es am besten, iText zu kontaktieren und ein Angebot über die Preise für die kommerzielle Nutzung von iText anfordern.
IronPDF ist frei für Entwicklungund kann dann für den kommerziellen Einsatz lizenziert zu öffentlich veröffentlichten, günstigen Preisen ab $749.
So sehen die 2 Bibliotheken aus:
Konvertierung von HTML in PDF über einen vollständig integrierten Webbrowser | Einfache HTML-Umwandlung in PDF über ein pdfHTML-Zusatzmodul |
Schwerpunkt Rendering: Eingebetteter Webbrowser | Schwerpunkt Rendering: Programmatisches Zeichenmodell |
IronPDF hat explizite Lizenzen mit veröffentlichten Preisen | AGPL! Preise für kommerzielle Nutzung nicht veröffentlicht. |
Einfacher Code mit .NET First Design | Basierend auf einer Java-API |
Nicht geeignet für akademische Aufgaben und Kursarbeiten | Hervorragend geeignet für akademische Aufgaben und Forschung |
IronPDF ermöglicht .NET- und .NET Core-Entwicklern das einfache Generieren, Zusammenführen, Teilen, Bearbeiten und Extrahieren von PDF-Inhalten in C#, F# und VB.NET für .NET Core und .NET-Framework, sowie pDFs erstellen aus HTML-, ASPX-, CSS-, JS- und Bilddateien.
Es nutzt einen vollständig eingebetteten Webbrowser, um HTML in PDF zu konvertieren. Dies ermöglicht es Entwicklern, PDFs aus HTML, Bildern und CSS zu generieren, eng mit bestehenden Web-Assets zu arbeiten und auch parallel mit Designern während eines Projekts zu arbeiten.
IronPDF konzentriert sich wirklich auf die Produktivität der Entwickler. Die Bibliothek vereinfacht viele gängige komplexe PDF-Code-Aufgaben in praktische C#-Methoden, um Text und Bilder zu extrahieren, PDFs zu signieren, PDFs mit neuem HTML zu bearbeiten und vieles mehr, ohne dass der Entwickler den PDF-Dokumentenstandard studieren muss, um zu verstehen, wie er sein bestes Ergebnis erzielt.
Die iTextSharp.dll verwendet ein primär programmatisches Modell zum Rendern von PDFs und verfügt über fortschrittliche APIs zur PDF-Bearbeitung, die leistungsstark sind und sich eng an den PDF-Standard halten.
Basierend auf einer Java-Bibliothek
Zum Vergleich erstellen wir ein Beispielprojekt, das beide Bibliotheken verwendet:
Führen Sie die folgenden Schritte aus, um eine ASP.NET-Website zu erstellen:
Visual Studio öffnen
Klicken Sie auf Datei > Neues Projekt
Wählen Sie im Listenfeld Projekttyp unter Visual C# die Option Web
OK anklicken
Jetzt haben wir etwas, womit wir arbeiten können. Installieren wir IronPDF.
Um IronPDF nutzen zu können, müssen Sie es zunächst installieren (kostenlos). Es gibt zwei Möglichkeiten:
Download der Bibliothek
Schauen wir uns das einmal genauer an.
Install-Package IronPdf
Install-Package IronPdf
Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.
Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.
Install-Package IronPdf
Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip
Manuelle Installation in Ihr Projekt
DLL herunterladenEs gibt drei Möglichkeiten, das IronPDF NuGet-Paket zu installieren:
Visual Studio
Entwickler-Eingabeaufforderung
Laden Sie das NuGet-Paket direkt herunter
Gehen wir sie der Reihe nach durch.
Visual Studio bietet den NuGet Package Manager, mit dem Sie NuGet-Pakete in Ihren Projekten installieren können. Sie können über das Projektmenü darauf zugreifen, oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer klicken. Diese beiden Optionen sind in den Abbildungen 3 und 4 dargestellt
Nachdem Sie in einer der beiden Optionen auf NuGet-Pakete verwalten geklickt haben, suchen Sie nach dem IronPDF-Paket und installieren es wie in Abbildung 5 dargestellt.
Die folgenden Schritte öffnen die Eingabeaufforderung für Entwickler und installieren das IronPDF NuGet-Paket
Suchen Sie nach Ihrer Entwickler-Eingabeaufforderung - sie befindet sich normalerweise in Ihrem Visual Studio-Ordner
Geben Sie den folgenden Befehl ein: PM > Install-Package IronPDF
Eingabe drücken
Das Paket wird installiert
Um das NuGet-Paket herunterzuladen:
Navigieren Sie zu https://www.nuget.org/packages/IronPdf/
Klicken Sie auf Paket herunterladen
Nachdem das Paket heruntergeladen wurde, doppelklicken Sie es
Die zweite Möglichkeit, IronPDF zu installieren, besteht darin direkter Download.
Verweisen Sie auf die Bibliothek in Ihrem Projekt, indem Sie die folgenden Schritte ausführen:
Klicken Sie mit der rechten Maustaste auf die Lösung im Projektmappen-Explorer
Referenzen auswählen
Suchen Sie nach der IronPDF.dll-Bibliothek
OK anklicken
Nun, da Sie eingerichtet sind, können wir nach der Einrichtung von iTextSharp damit beginnen, mit den großartigen Funktionen der IronPDF-Bibliothek zu spielen.
Es gibt drei Möglichkeiten installieren Sie das iTextSharp NuGet paket sind sie:
Gehen wir sie der Reihe nach durch.
Suchen Sie für Visual Studio nach iText und installieren Sie die entsprechenden Pakete, wie im Folgenden gezeigt.
Oder, in der Eingabeaufforderung für Entwickler (wie zuvor gezeigt, geben Sie den folgenden Befehl ein)
PM > Installieren-Paket itext7
Oder, herunterladen iText 7 direkt von ihrer Website.
Nachdem Sie nun die erforderlichen Projekte erstellt haben, wollen wir diese beiden Bibliotheken im Code vergleichen.
Der folgende Code lädt eine Webseite herunter und wandelt sie in ein PDF-Dokument um.
Der folgende Code verwendet IronPDF, um ein PDF-Dokument direkt von einer Website-Adresse zu erstellen. Benutzerdefinierte Kopf- und Fußzeilen sind ebenfalls enthalten.
/**
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
Der folgende Code verwendet iText7, um ein PDF-Dokument direkt aus einer Website-Adresse zu erstellen und Kopf- und Fußzeilen hinzuzufügen.
/**
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
Mit iText 7 brauchte der Autor länger, um einen Code zu entwickeln, der das Dokument unter der angegebenen URL in PDF umwandelt. Zwei Codezeilen sind erforderlich:
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))
Ein MemoryStream-Objekt sowie ein FileStream-Objekt müssen mit festgelegten Eigenschaften erstellt werden.
Werfen wir einen Blick auf IronPDF.
IronPDF benötigte drei Codezeilen (wenn Sie die SaveAs-Methode auch am Ende des Codesegments einfügen), aber ansonsten waren nur zwei Zeilen erforderlich:
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")
Ein FileStream oder ein zusätzliches .NET-Objekt ist nicht erforderlich, da die gesamte Funktionalität in die IronPDF RenderUrlAsPdf-Methode integriert zu sein scheint.
Ich füge jetzt einen Output-Vergleich ein, da dieser für alle folgenden Übungen gelten soll, die wir im Laufe dieses Tutorials durchführen werden.
Mit diesem Codesegment haben wir den Tiger Wikipedia webseite zu PDF mit beiden Bibliotheken.
Die Datei, die mit der iText-Bibliothek ausgegeben wurde, hat 49 Seiten. Es konnte weder JavaScript noch CSS darstellen. Die resultierende Ausgabe ist unten dargestellt:
Die Datei, die mit der IronPDF-Bibliothek ausgegeben wurde, hat 12 Seiten. Es rendert JavaScript und CSS recht gut. Die resultierende Ausgabe ist unten dargestellt:
Ein Bild sagt mehr als tausend Worte.... IronPDF glänzt bei der Umwandlung von HTML in PDF.
Der nächste Code erstellt ein PDF-Dokument und druckt eine HTML-Zeichenkette darin aus.
Der folgende Code verwendet IronPDF, um eine PDF-Datei mit HTML-Eingabe zu erzeugen.
/**
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
Der folgende Code verwendet iText7, um eine PDF-Datei mit HTML-Text zu erstellen.
/**
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 verwendet erneut den Aufruf HtmlConverter.ConvertToPdf, um eine HTML-Zeichenfolge zur Ausgabe als PDF zu senden.
IronPDF verwendet die Methode RenderHtmlAsPdf, die speziell für die Arbeit mit HTML und PDF entwickelt wurde.
Beide Optionen sind ziemlich schnell und auf den Punkt gebracht, aber IronPDF erlaubt eine Menge Kontrolle über den Rendering-Prozess und sogar die Verwendung von HTML, um Kopf- und Fußzeilen zu PDF-Seiten hinzuzufügen.
Der folgende Code erstellt ein PDF-Dokument aus einer ASPX-Seite.
Der folgende Code verwendet IronPDF, um eine PDF-Datei aus einer ASPX-Datei zu erstellen. Das Webformular wird durch Hinzufügen einer Codezeile zum Page_Load-Ereignis zu einer dynamischen PDF-Datei. 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
Es scheint, als ob die pdfHTML-Bibliothek von iText7 die Erstellung von PDFs aus ASPX-Webseiten nicht unterstützt. Diese Funktionalität müsste projektspezifisch kodiert werden.
Der Entwickler sollte das HTML aus dem Framework holen, dann wird das pdfHTML Add-on dieses HTML zur Konvertierung in PDF akzeptieren.
Der folgende Code wandelt XML in das PDF-Format um
/**
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
Die Struktur der XSLT-Datei ist wie folgt:
<?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>
die Unterstützung von iText** für die Verarbeitung von XML zu PDF kann kundenspezifische Entwicklungsarbeit erfordern.
Der folgende Code bezieht Daten aus einer externen Quelle und erstellt ein entsprechendes Diagramm.
Der folgende Code verwendet IronPDF, um schnell ein Diagramm zu erstellen und die Seiteneigenschaften mit HTML to PDF festzulegen.
/**
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
Der folgende Code verwendet iText7, um ein Diagramm zu erstellen und Eigenschaften festzulegen. Wir können einen programmatischen Zeichnungs-Api-Stil sehen.
/**
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
Der größte Unterschied zwischen den Lizenzoptionen von IronPDF und iText ist die Tatsache, dass iTextSharp Open Source unter der AGPL-Lizenzvereinbarung ist. Kurz gesagt (wie zitiert, "Die AGPL-Lizenz unterscheidet sich von den anderen GNU-Lizenzen dadurch, dass sie für Netzwerksoftware entwickelt wurde. Sie können geänderte Versionen weitergeben, wenn Sie die Änderungen und das Datum, an dem Sie sie vorgenommen haben, festhalten. Wie bei GNU-Lizenzen üblich, müssen Sie Derivate unter AGPL lizenzieren. Sie bietet dieselben Einschränkungen und Freiheiten wie die GPLv3, jedoch mit einer zusätzlichen Klausel, die besagt, dass der Quellcode zusammen mit der Web-Veröffentlichung verteilt werden muss. Since websites and services are never distributed in the traditional sense, the AGPL is the GPL of the web."
Das bedeutet, dass, wenn die Anwendung iTextSharp in irgendeiner Weise verwendet - auch über ein lokales Netzwerk ODER über das Internet - dann muss der vollständige Quellcode der Anwendung für jeden Benutzer frei verfügbar sein. Das ist nicht immer im besten Interesse eines Projekts.
Diese Lizenz wird häufig für hochakademische Werke verwendet, die akademisch bleiben sollen, und auch für Open-Source-Projekte, die eine kostenpflichtige Nutzung der Software außerhalb akademischer Umgebungen vorsehen. Die Natur der AGPL-Lizenzvereinbarung macht die Open-Source iTextSharp lizenz für viele kommerzielle Anwendungsfälle schwierig, es sei denn, es kann eine private Lizenz vereinbart und mit den Entwicklern rechtlich ausgehandelt werden.
IronPDF hingegen ist ein offenes, kommerzielles C# PDF-Bibliothek. Es ist kostenlos für die Entwicklung und kann jederzeit für den kommerziellen Einsatz lizenziert werden. Bei diesem klaren Lizenzmodell müssen sich die Entwickler nicht mit den Besonderheiten der GNU / AGPL-Lizenzmodelle auseinandersetzen und können sich stattdessen auf ihre Projekte konzentrieren. Lizenzen sind verfügbar für einzelne Projekte, einzelne Entwickler, Agenturen und globale Unternehmen sowie SaaS- und OEM-Vertrieb. Es werden keine Anwaltskosten ausgehandelt, sondern nur eine einfache Lizenzvergabe.
IronPDF ist:
Eine gute Wahl für pragmatische Programmierer, die eine Aufgabe effizient erledigen wollen.
iText (iTextSharp) ist:
Sie können auf den gesamten Quellcode dieses Vergleichstutorials in C# auf GitHub zugreifen und ihn mit anderen teilen.
IronPDF und iTextSharp Code-VergleichWir haben ein kostenloses PDF-Ressourcenhandbuch erstellt, um die Entwicklung von PDFs für .NET zu vereinfachen. Darin werden gängige Funktionen und Beispiele für die Bearbeitung, Erstellung und Speicherung von PDFs in C# und VB.NET für Ihr Projekt erläutert.
Den Leitfaden herunterladenEntdecken Sie die API-Referenz für die IronPDF C# Library, einschließlich Details zu allen IronPDF-Funktionen, Klassen, Methodenfeldern, Namespaces und Enums.
Ansicht der API-Referenz9 .NET API-Produkte für Ihre Bürodokumente