Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

IronPDF vs. XFINIUM.PDF: Vergleich einer HTML-zu-PDF-Bibliothek für .NET

IronPDF zeichnet sich durch seine hervorragende HTML-zu-PDF-Konvertierung mit vollständiger CSS- und JavaScript-Unterstützung auf Basis der Chromium-Engine aus. Im Gegensatz dazu ist XFINIUM.PDF auf die PDF-Manipulation auf niedriger Ebene ohne natives HTML-Rendering spezialisiert, wodurch IronPDF die bessere Wahl für die moderne webbasierte PDF-Erstellung in .NET-Anwendungen darstellt.

Moderne Technologien bieten Entwicklern intelligentere Lösungen, wobei die Automatisierung die Softwareentwicklungsprozesse vorantreibt. Die Arbeit mit C#-PDF-Dateien stellt Entwickler seit langem vor eine Herausforderung. Bei der Erstellung von Inhalten für PDF-Dateien müssen mehrere Faktoren berücksichtigt werden, und dies gilt umso mehr für die Konvertierung von Inhalten aus verschiedenen Formaten in PDF . Diesen Herausforderungen wird heute durch Bibliotheken begegnet, die beim Lesen, Schreiben, Erstellen und Konvertieren von PDFs aus verschiedenen Formaten helfen.

Dieser Artikel vergleicht zwei beliebte PDF-Bibliotheken für .NET- und .NET Core- Entwickler:

Sowohl IronPDF als auch XFINIUM.PDF bieten Methoden zum Erstellen , Bearbeiten und Drucken von PDFs in .NET und .NET Core. Sie können eine fundierte Entscheidung treffen, indem Sie den folgenden Vergleich der beiden Bibliotheken und ihrer jeweiligen Funktionen zur PDF-Konvertierung und -Bearbeitung prüfen.

Zunächst wollen wir uns ansehen, was die beiden Bibliotheken bieten, und anschließend den Vergleich anstellen.

Welche Funktionen bietet die XFINIUM.PDF-Bibliothek?

Die XFINIUM.PDF-Bibliothek ist ein plattformübergreifendes Werkzeug zur PDF-Entwicklung, das sich sowohl an Anfänger als auch an fortgeschrittene PDF-Entwickler richtet. Es ermöglicht Ihnen, Berichte zu erstellen , PDF-Formulare auszufüllen , PDF-Portfolios zu erstellen, sensible Daten aus PDF-Berichten zu schwärzen oder PDF-Berichte in mehrseitige TIFF-Bilder zu konvertieren .

XFINIUM.PDF ist in zwei Editionen erhältlich: der Generator Edition, die die PDF-Erstellung und -Bearbeitung umfasst, und der Viewer Edition, die zusätzlich das Rendern und Betrachten von PDFs ermöglicht.

XFINIUM.PDF ist vollständig in C# als vollständig verwalteter Code geschrieben. Es wird pro Entwickler lizenziert und ist lizenzgebührenfrei vertreibbar, sodass Sie Ihr Programm ohne zusätzliche Kosten verbreiten können.

Was ist der Unterschied zwischen der Generator- und der Viewer-Edition?

Die Generator-Edition ist ein Teil der Viewer-Edition. Es bietet PDF-Funktionalität zum Erstellen und Bearbeiten von PDFs, während die Viewer Edition zusätzlich PDF-Rendering-Funktionen bietet. Die Viewer Edition kann PDF-Seiten in RAW-, BMP-, GIF-, JPG-, PNG- und TIFF-Bilder konvertieren .

XFINIUM.PDF Spezifikation

Hauptmerkmale sind:

Sicherheit

Digitale Unterschriften

BarCode

  • Integrierte Vektor-Barcode-Engine – Eindimensionale Barcodes:
    • Codabar, Code 11, Code 25, Code 39/93/128
    • Pharmazeutischer Code: Code 32, Pharmacode, PZN – Zweidimensionale Barcodes:
    • DataMatrix , QR, PDF417, Micro PDF417

Für erweiterte Barcode-Funktionalität sollten Sie die Ironbarcode-Dokumentation in Betracht ziehen, die vollständige Barcode-Generierungs- und Lesefunktionen bietet.

Inhaltsextraktion

COS-API auf niedriger Ebene

– COS-Objekte hinzufügen, bearbeiten und entfernen

  • Unterstützte Datentypen: Zeichenketten, Zahlen, Namen, Boolesche Werte, Nullwerte, Arrays, Wörterbücher, Datenströme

PDF-Rendering (nur Viewer Edition)

Was sind die Hauptmerkmale von IronPDF?

Die IronPDF .NET PDF-Bibliothek vereinfacht die PDF-Entwicklung für C#-Programmierer. Mit diesem Tool können Sie auf einfache Weise eine PDF-Kernbibliothek für .NET erstellen.

IronPDF konvertiert HTML-Seiten mithilfe der .NET Chromium-Engine in PDF-Dateien. Mit HTML to PDF benötigen Sie keine komplizierten APIs, um PDFs zu positionieren oder zu gestalten. Es werden gängige Webdokumente unterstützt, darunter HTML, ASPX, JS, CSS und Bilder .

Sie können HTML5, CSS, JavaScript und Bilder verwenden, um eine .NET-PDF-Bibliothek zu entwickeln. PDFs können bearbeitet, gestempelt und mit Kopf- und Fußzeilen angereichert werden. Die Bibliothek verwaltet das Lesen von PDF-Texten und das Extrahieren von Grafiken effizient.

Laden Sie IronPDF herunter und beginnen Sie noch heute damit, es in Ihren .NET-Projekten zu verwenden.

Hervorstechende Merkmale der IronPDF C# Bibliothek

Hauptmerkmale sind:

PDFs erstellen (HTML zu PDF)

Vorhandene PDF-Dokumente bearbeiten

PDF-Dokumente bearbeiten

Verschiedene Dateiformate konvertieren

Drucken und Speichern

IronPDF unterstützt alle gängigen Betriebssysteme und Frameworks:

Wie installiere ich die IronPDF C#-Bibliothek?

Sie können IronPDF auf vier Arten herunterladen und installieren:

  1. Verwenden von Visual Studio
  2. Entwickler-Eingabeaufforderung
  3. Laden Sie das NuGet-Paket direkt herunter.
  4. Laden Sie die IronPDF .DLL-Bibliothek herunter

Verwendung von Visual Studio

Visual Studio stellt den NuGet-Paketmanager zur Verfügung, um Pakete in Ihren Projekten zu installieren. Sie können darauf über das Projektmenü oder per Rechtsklick auf Ihr Projekt im Projektmappen-Explorer zugreifen.

Visual Studio Project menu showing various options including 'Manage NuGet Packages' highlighted for package management.

Abbildung 1. Zugriff auf den NuGet-Paketmanager über das Projektmenü in Visual Studio

Visual Studio Solution Explorer context menu showing the Manage NuGet Packages option highlighted in yellow

Abbildung 2. Zugriff auf den NuGet-Paketmanager über das Kontextmenü in Visual Studio

Nach der Auswahl suchen Sie nach dem IronPDF-Paket und installieren es.

Visual Studio interface showing NuGet Package Manager with IronPDF library search results and installation options

Abbildung 3. Installieren der IronPDF-Bibliothek mit dem NuGet-Paketmanager in Visual Studio

Verwendung der Eingabeaufforderung für Entwickler

Installieren Sie das IronPDF NuGet-Paket über die Entwickler-Eingabeaufforderung:

  • Öffnen Sie die Entwickler-Eingabeaufforderung
  • Geben Sie den folgenden Befehl ein:

    nuget install IronPdf
    nuget install IronPdf
    SHELL
  • Drücken Sie die Eingabetaste Das Paket wird heruntergeladen und installiert.
  • Laden Sie Ihr Visual Studio-Projekt neu.

Das NuGet-Paket direkt herunterladen

Laden Sie IronPDF direkt von NuGet herunter und installieren Sie es:

  • Gehen Sie zur IronPDF-NuGet-Seite
  • Wählen Sie Paket herunterladen
  • Doppelklicken Sie auf das heruntergeladene Paket Das Paket installiert
  • Laden Sie Ihr Visual Studio-Projekt neu.

Installieren Sie IronPDF durch Herunterladen der Bibliothek

Laden Sie die IronPDF .DLL-Datei direkt von der IronPDF-Downloadseite herunter.

IronPDF website homepage showing the C# PDF Library with download options for DLL and NuGet installation

Abbildung 4. Herunterladen der IronPDF Library DLL von der IronPDF-Website

Referenzieren Sie die Bibliothek in Ihrem Projekt:

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe. – Wählen Sie Verweise
  • Suchen Sie nach der IronPDF.dll-Bibliothek – OK klicken

IronPDF ist jetzt einsatzbereit. Installieren wir als Nächstes XFINIUM.PDF.

Wie installiere ich XFINIUM.PDF?

Installieren Sie Xfinium PDF in .NET Core als CakePHP-Add-In oder -Tool:

# Install Xfinium.Pdf.NetCore as a Cake Addin
#addin nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
# Install Xfinium.Pdf.NetCore as a Cake Addin
#addin nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
SHELL
# Install Xfinium.Pdf.NetCore as a Cake Tool
#tool nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
# Install Xfinium.Pdf.NetCore as a Cake Tool
#tool nuget:?package=Xfinium.Pdf.NetCore&version=10.2.0
SHELL

Nun vergleichen wir IronPDF und XFINIUM.PDF.

Wie erstelle ich ein einfaches PDF-Dokument in .NET Core?

Softwareentwickler müssen wissen, wie man mit C# dynamisch PDF-Dateien erstellt . Möglicherweise benötigen Sie die PDF-Erstellung für die Generierung von Berichten aus Benutzereingaben , das Speichern von Benutzertexten als PDF, das Extrahieren von HTML-Informationen und deren Konvertierung in PDF und vieles mehr.

Beide Bibliotheken können HTML-Webseiten in PDF konvertieren . Lassen Sie uns die Vorgehensweise jeder Bibliothek genauer betrachten.

Verwendung von IronPDF

IronPDF bietet verschiedene Methoden zum Erstellen von PDF-Dateien.

Bestehende URL zu PDF

IronPDF vereinfacht die Konvertierung von HTML- in PDF-Dokumente anhand bestehender URLs . JavaScript , Bilder , Formulare und CSS werden vollständig unterstützt.

Die Implementierung übernimmt das URL-Rendering automatisch:

// Create an instance of the ChromePdfRenderer
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();

// Configure rendering options for better performance
Renderer.RenderingOptions.WaitFor.RenderDelay = 500; // Wait for JavaScript to load
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Render a URL to PDF
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_134___");

// Save the PDF with metadata
Pdf.MetaData.Author = "IronPDF";
Pdf.MetaData.Title = "Website to PDF Conversion";
Pdf.SaveAs("url.pdf");
// Create an instance of the ChromePdfRenderer
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();

// Configure rendering options for better performance
Renderer.RenderingOptions.WaitFor.RenderDelay = 500; // Wait for JavaScript to load
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Render a URL to PDF
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_134___");

// Save the PDF with metadata
Pdf.MetaData.Author = "IronPDF";
Pdf.MetaData.Title = "Website to PDF Conversion";
Pdf.SaveAs("url.pdf");
$vbLabelText   $csharpLabel

HTML-Eingabestring zu PDF

Betrachten Sie das folgende Codebeispiel zum Rendern einer PDF-Seite aus einem HTML-String . Sie können HTML allein verwenden oder es mit CSS, Bildern und JavaScript kombinieren:

// Create an instance of the ChromePdfRenderer
var Renderer = new IronPdf.ChromePdfRenderer();

// Configure rendering options
Renderer.RenderingOptions.MarginTop = 50; // millimeters
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Render a simple HTML string to PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");

// Add document properties
PDF.MetaData.Author = "Development Team";
PDF.MetaData.Keywords = "HTML, PDF, C#";
PDF.MetaData.ModifiedDate = DateTime.Now;

// Save the PDF
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, CSS, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");

// Apply security settings
AdvancedPDF.Password = "pass123";
AdvancedPDF.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Save the advanced PDF with external assets
AdvancedPDF.SaveAs("html-with-assets.pdf");
// Create an instance of the ChromePdfRenderer
var Renderer = new IronPdf.ChromePdfRenderer();

// Configure rendering options
Renderer.RenderingOptions.MarginTop = 50; // millimeters
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Render a simple HTML string to PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");

// Add document properties
PDF.MetaData.Author = "Development Team";
PDF.MetaData.Keywords = "HTML, PDF, C#";
PDF.MetaData.ModifiedDate = DateTime.Now;

// Save the PDF
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, CSS, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");

// Apply security settings
AdvancedPDF.Password = "pass123";
AdvancedPDF.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;

// Save the advanced PDF with external assets
AdvancedPDF.SaveAs("html-with-assets.pdf");
$vbLabelText   $csharpLabel

Fortgeschrittene Techniken zur HTML-zu-PDF-Konvertierung finden Sie im HTML-zu-PDF-Tutorial .

Verwendung von XFINIUM.PDF

Das Erstellen eines leeren PDF-Dokuments mit XFINIUM.PDF erfordert drei Schritte: Dokument erstellen, Seite erstellen und speichern:

// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();

// Add a page to the document
PdfPage page = document.Pages.Add();

// Save the document as a PDF file
document.Save("empty.pdf");
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();

// Add a page to the document
PdfPage page = document.Pages.Add();

// Save the document as a PDF file
document.Save("empty.pdf");
$vbLabelText   $csharpLabel

Das Hinzufügen von Textinhalten erfordert drei zusätzliche Zeilen: das Erstellen einer Schriftart, das Erstellen eines Pinsels für die Farbe und das Zeichnen des Textes:

// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();

// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);

// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);

// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);

// Save the document as a PDF file
document.Save("helloworld.pdf");
// Create a new PDF document
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();

// Create a standard font with Helvetica face and 24 point size
PdfStandardFont helvetica = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);

// Create a solid RGB red brush.
PdfBrush brush = new PdfBrush(PdfRgbColor.Red);

// Draw the text on the page.
page.Graphics.DrawString("Hello World", helvetica, brush, 100, 100);

// Save the document as a PDF file
document.Save("helloworld.pdf");
$vbLabelText   $csharpLabel

Das Objektmodell ähnelt stark dem PDF-Standard. Dieser Ansatz bietet klare Vorteile für die Erstellung komplexer Abstraktionen wie Flussdiagramme . ## So erstellen Sie ausfüllbare PDF-Dateien

Verwendung von XFINIUM.PDF

Mit XFINIUM.PDF können Sie neue PDF-Formulare erstellen und bestehende PDF-Formulare ausfüllen .

Jedem PDF-Formularfeldtyp ist eine entsprechende Klasse zugeordnet:

  • PdfTextBoxField – Textfeldfelder
  • PdfCheckBoxField – Kontrollkästchen
  • PdfRadioButtonField – Optionsfeldgruppen
  • PdfComboboxField – Kombinationsfelder
  • PdfListboxField – Listenfelder
  • PdfPushbuttonField – Drucktasten
  • PdfSignatureField – Signaturfelder

Um ein Formularfeld zu erstellen, geben Sie den Feldnamen und die Seitenposition an. Nachdem Sie das Feldobjekt erstellt haben, fügen Sie es der Seite hinzu und legen Sie seine Attribute fest:

// Create a text box field named "firstname"
PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");

// Add the field to a PDF page
pdfpage.Fields.Add(firstNameTextBox);

// Set the position of the field on the PDF page
firstNameTextBox.Widgets[0].VisualRectangle = new PdfVisualRectangle(150, 45, 200, 20);
// Create a text box field named "firstname"
PdfTextBoxField firstNameTextBox = new PdfTextBoxField("firstname");

// Add the field to a PDF page
pdfpage.Fields.Add(firstNameTextBox);

// Set the position of the field on the PDF page
firstNameTextBox.Widgets[0].VisualRectangle = new PdfVisualRectangle(150, 45, 200, 20);
$vbLabelText   $csharpLabel

Um vorhandene PDF-Formulare auszufüllen, laden Sie diese in ein PdfFixedDocument -Objekt. Die Felder des Dokuments werden automatisch ausgefüllt. Sie können Felder anhand ihres Index oder Namens finden und sie durch Festlegen von Werteigenschaften füllen:

// Load an existing PDF document with forms
PdfFixedDocument document = new PdfFixedDocument("form.pdf");

// Fill form fields with values
(document.Form.Fields["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields["sex"].Widgets[0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields["agree"] as PdfCheckBoxField).Checked = true;

// Save the filled form as a new PDF file
document.Save("form_filled.pdf");
// Load an existing PDF document with forms
PdfFixedDocument document = new PdfFixedDocument("form.pdf");

// Fill form fields with values
(document.Form.Fields["firstname"] as PdfTextBoxField).Text = "John";
(document.Form.Fields["lastname"] as PdfTextBoxField).Value = "Doe";
(document.Form.Fields["sex"].Widgets[0] as PdfRadioButtonWidget).Checked = true;
(document.Form.Fields["firstcar"] as PdfComboBoxField).SelectedIndex = 0;
(document.Form.Fields["secondcar"] as PdfListBoxField).SelectedIndex = 1;
(document.Form.Fields["agree"] as PdfCheckBoxField).Checked = true;

// Save the filled form as a new PDF file
document.Save("form_filled.pdf");
$vbLabelText   $csharpLabel

Verwendung von IronPDF

So erstellen Sie ausfüllbare PDFs mit IronPDF:

// PM> Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

// Step 1. Creating a PDF with editable forms from HTML using form and input tags
var FormHtml = @"
<html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h2 { color: #333; }
            form { background: #f4f4f4; padding: 20px; border-radius: 8px; }
            input[type='text'] { 
                width: 100%; 
                padding: 8px; 
                margin: 10px 0;
                border: 1px solid #ddd;
                border-radius: 4px;
            }
            input[type='checkbox'] { margin-right: 10px; }
            select { width: 100%; padding: 8px; margin: 10px 0; }
        </style>
    </head>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
          First name:<br> <input type='text' name='firstname' value=''> <br>
          Last name:<br> <input type='text' name='lastname' value=''>
          <br><br>
          Email:<br> <input type='text' name='email' value=''>
          <br><br>
          Subscribe to newsletter: <input type='checkbox' name='newsletter' value='yes'>
          <br><br>
          Country: 
          <select name='country'>
              <option value='usa'>United States</option>
              <option value='uk'>United Kingdom</option>
              <option value='canada'>Canada</option>
          </select>
        </form>
    </body>
</html>";

// Create a PDF renderer with form creation enabled
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Renderer.RenderingOptions.MarginTop = 20;
Renderer.RenderingOptions.MarginBottom = 20;

// Render the HTML as a PDF and save it
var pdfDocument = Renderer.RenderHtmlAsPdf(FormHtml);
pdfDocument.SaveAs("BasicForm.pdf");

// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");

// Get form field collection
var form = FormDocument.Form;

// Set and Read the value of the "firstname" field
var FirstNameField = form.FindFormField("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);

// Set and Read the value of the "lastname" field
var LastNameField = form.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);

// Set email field
var EmailField = form.FindFormField("email");
EmailField.Value = "minnie.mouse@example.com";

// Set checkbox
var NewsletterField = form.FindFormField("newsletter");
NewsletterField.Value = "yes";

// Set dropdown selection
var CountryField = form.FindFormField("country");
CountryField.Value = "usa";

// Save the form with filled values
FormDocument.SaveAs("FilledForm.pdf");

// Step 3. Flattening the form (making it non-editable)
FormDocument.Form.Flatten();
FormDocument.SaveAs("FlattenedForm.pdf");
// PM> Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

// Step 1. Creating a PDF with editable forms from HTML using form and input tags
var FormHtml = @"
<html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; margin: 40px; }
            h2 { color: #333; }
            form { background: #f4f4f4; padding: 20px; border-radius: 8px; }
            input[type='text'] { 
                width: 100%; 
                padding: 8px; 
                margin: 10px 0;
                border: 1px solid #ddd;
                border-radius: 4px;
            }
            input[type='checkbox'] { margin-right: 10px; }
            select { width: 100%; padding: 8px; margin: 10px 0; }
        </style>
    </head>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
          First name:<br> <input type='text' name='firstname' value=''> <br>
          Last name:<br> <input type='text' name='lastname' value=''>
          <br><br>
          Email:<br> <input type='text' name='email' value=''>
          <br><br>
          Subscribe to newsletter: <input type='checkbox' name='newsletter' value='yes'>
          <br><br>
          Country: 
          <select name='country'>
              <option value='usa'>United States</option>
              <option value='uk'>United Kingdom</option>
              <option value='canada'>Canada</option>
          </select>
        </form>
    </body>
</html>";

// Create a PDF renderer with form creation enabled
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
Renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Renderer.RenderingOptions.MarginTop = 20;
Renderer.RenderingOptions.MarginBottom = 20;

// Render the HTML as a PDF and save it
var pdfDocument = Renderer.RenderHtmlAsPdf(FormHtml);
pdfDocument.SaveAs("BasicForm.pdf");

// Step 2. Reading and Writing PDF form values.
var FormDocument = PdfDocument.FromFile("BasicForm.pdf");

// Get form field collection
var form = FormDocument.Form;

// Set and Read the value of the "firstname" field
var FirstNameField = form.FindFormField("firstname");
FirstNameField.Value = "Minnie";
Console.WriteLine("FirstNameField value: {0}", FirstNameField.Value);

// Set and Read the value of the "lastname" field
var LastNameField = form.FindFormField("lastname");
LastNameField.Value = "Mouse";
Console.WriteLine("LastNameField value: {0}", LastNameField.Value);

// Set email field
var EmailField = form.FindFormField("email");
EmailField.Value = "minnie.mouse@example.com";

// Set checkbox
var NewsletterField = form.FindFormField("newsletter");
NewsletterField.Value = "yes";

// Set dropdown selection
var CountryField = form.FindFormField("country");
CountryField.Value = "usa";

// Save the form with filled values
FormDocument.SaveAs("FilledForm.pdf");

// Step 3. Flattening the form (making it non-editable)
FormDocument.Form.Flatten();
FormDocument.SaveAs("FlattenedForm.pdf");
$vbLabelText   $csharpLabel

Sie beginnen mit dem Erstellen eines Formulars mit HTML-Formatierungs-Tags. Die Bibliothek kümmert sich um die Komplexität beim Speichern als PDF. Das Lesen und Schreiben von Formularwerten erfolgt mithilfe der Funktion FindFormField . Ihre Anwendung kann diese Funktion sofort nutzen, um Formulare programmatisch auszufüllen.

Für erweiterte Formularverarbeitung, einschließlich digitaler Signaturen , siehe das Tutorial "PDF-Formulare erstellen" .

So signieren Sie PDF-Dateien digital

Fernarbeit erfordert eine effiziente Dokumentenverarbeitung. Das Ausfüllen und Unterschreiben von Formularen , das Versenden von Dateien und die Bearbeitung von Dokumenten gehören zum täglichen Geschäftsbetrieb. Das Signieren von PDF-Dokumenten , Portfolios und Formularen ersetzt Papierdokumente. Digitale Signaturen ermöglichen es Unternehmen, Verträge zu unterzeichnen und PDF-Formulare online zu teilen.

Verwendung von XFINIUM.PDF

Ein Signaturfeld wendet digitale Signaturen in PDF-Dateien an (Klasse PdfSignatureField ). Obwohl das Unterschriftenfeld nur auf einer Seite erscheint, wird mit der digitalen Signatur das gesamte Dokument signiert.

Der Signaturprozess verwendet ein PdfDigitalSignature Objekt, um das Signaturattribut festzulegen. Die Signatur wird beim Speichern des Dokuments auf Basis des Binärlayouts der PDF-Datei erstellt.

PdfDigitalSignature bildet die Grundlage für alle XFINIUM-Signaturen:

  • PdfCmsDigitalSignature – CMS-Standardsignatur (basiert auf PdfDigitalSignature )
  • PdfPadesDigitalSignature – PADES-Standardsignatur (basiert auf PdfCmsDigitalSignature )
  • PdfInteractiveCmsDigitalSignature – CMS-Signatur mittels Hardware-Smartcard
  • PdfInteractivePadesDigitalSignature – PADES mit Hardware-Smartcard-Unterstützung
  • PdfDocumentTimeStamp – Zeitstempel auf Dokumentebene (geerbt von PdfDigitalSignature )

Verwendung von IronPDF

Entwickler fragen häufig nach Möglichkeiten, mit IronPDF und C# programmatisch Signaturen zu PDFs hinzuzufügen . Dies kann bedeuten:

  • Hinzufügen grafischer Signaturbilder aus Dateien
  • Kryptografische Signatur zur Verhinderung von Manipulationen
  • Hinzufügen von handschriftlichen Signatursymbolen mit kryptografischer Signatur

Der erste Ansatz besteht darin , eine Signatur-PNG-Datei auf bestehende PDF-Seiten aufzudrucken . Verwenden Sie es für Unterschriften oder Firmenstempel:

// Open an existing PDF document or create a new one
var Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");

// Define an HTML stamp with a signature image
var SignatureStamp = new HtmlStamp()
{
    Html = "<img src='signature.png' />",
    Width = 150,
    Height = 50,
    Bottom = 300,
    Left = 85,
    ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};

// Advanced stamp with styling
var StyledSignatureStamp = new HtmlStamp()
{
    Html = @"<div style='border: 2px solid #000; padding: 10px; background: rgba(255,255,255,0.9);'>
                <img src='signature.png' style='width: 120px;' />
                <p style='margin: 5px 0 0 0; font-size: 10px;'>Digitally Signed</p>
                <p style='margin: 0; font-size: 8px;'>{date}</p>
             </div>",
    Width = 150,
    Height = 100,
    Bottom = 50,
    Right = 50,
    ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};

// Stamp the signature on the first page of the PDF
Pdf.StampHTML(SignatureStamp, 1);

// Or apply to all pages
Pdf.StampHTML(StyledSignatureStamp);

// Save the stamped PDF
Pdf.SaveAs(@"C:\Path\To\Stamped_PDF.pdf");
// Open an existing PDF document or create a new one
var Pdf = PdfDocument.FromFile(@"C:\Path\To\ASPX to PDF.pdf");

// Define an HTML stamp with a signature image
var SignatureStamp = new HtmlStamp()
{
    Html = "<img src='signature.png' />",
    Width = 150,
    Height = 50,
    Bottom = 300,
    Left = 85,
    ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};

// Advanced stamp with styling
var StyledSignatureStamp = new HtmlStamp()
{
    Html = @"<div style='border: 2px solid #000; padding: 10px; background: rgba(255,255,255,0.9);'>
                <img src='signature.png' style='width: 120px;' />
                <p style='margin: 5px 0 0 0; font-size: 10px;'>Digitally Signed</p>
                <p style='margin: 0; font-size: 8px;'>{date}</p>
             </div>",
    Width = 150,
    Height = 100,
    Bottom = 50,
    Right = 50,
    ZIndex = HtmlStamp.StampLayer.OnTopOfExistingPDFContent
};

// Stamp the signature on the first page of the PDF
Pdf.StampHTML(SignatureStamp, 1);

// Or apply to all pages
Pdf.StampHTML(StyledSignatureStamp);

// Save the stamped PDF
Pdf.SaveAs(@"C:\Path\To\Stamped_PDF.pdf");
$vbLabelText   $csharpLabel

PDFs kryptografisch mit .pfx- und .p12-X509Certificate2-Zertifikaten in einer Zeile signieren :

// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");

// Or with more control
var signature = new IronPdf.PdfSignature("CertificateFile.p12", "123456")
{
    SigningContact = "john@example.com",
    SigningLocation = "New York, USA",
    SigningReason = "Contract Agreement"
};

// Load the PDF
var pdf = PdfDocument.FromFile("contract.pdf");

// Sign and save
pdf.SignPdfWithDigitalSignature(signature);
pdf.SaveAs("signed-contract.pdf");
// 123456 below represents the signature password
new IronPdf.PdfSignature("CertificateFile.p12", "123456").SignPdfFile("ASPX to PDF.pdf");

// Or with more control
var signature = new IronPdf.PdfSignature("CertificateFile.p12", "123456")
{
    SigningContact = "john@example.com",
    SigningLocation = "New York, USA",
    SigningReason = "Contract Agreement"
};

// Load the PDF
var pdf = PdfDocument.FromFile("contract.pdf");

// Sign and save
pdf.SignPdfWithDigitalSignature(signature);
pdf.SaveAs("signed-contract.pdf");
$vbLabelText   $csharpLabel

Dieses fortgeschrittene Beispiel kombiniert die digitale Signatur von .pfx / .p12 X509Certificate2 mit handschriftlichen Signaturen:

// Create a digital signature using a certificate file
var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");

// Render a PDF document to be signed
var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.MarginBottom = 0;
Renderer.RenderingOptions.MarginTop = 0;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Create PDF with security features
string html = @"<h1>Contract Agreement</h1>
                <p>This document is digitally signed and encrypted.</p>
                <p>Agreement Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>";

PdfDocument doc = Renderer.RenderHtmlAsPdf(html);

// Configure optional signing options and a handwritten signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";

// Load a handwritten signature image
Signature.LoadSignatureImageFromFile("handwriting.png");

// Advanced security: Set permissions
doc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
doc.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
doc.SecuritySettings.AllowUserCopyPasteContent = false;

// Sign the PDF document with the digital signature
doc.SignPdfWithDigitalSignature(Signature);

// Add password protection
doc.Password = "userpassword";
doc.OwnerPassword = "ownerpassword";

// Save the signed PDF document
doc.SaveAs("Signed_ASPX_to_PDF.pdf");
// Create a digital signature using a certificate file
var Signature = new IronPdf.PdfSignature("Iron.pfx", "123456");

// Render a PDF document to be signed
var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.MarginBottom = 0;
Renderer.RenderingOptions.MarginTop = 0;
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Create PDF with security features
string html = @"<h1>Contract Agreement</h1>
                <p>This document is digitally signed and encrypted.</p>
                <p>Agreement Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>";

PdfDocument doc = Renderer.RenderHtmlAsPdf(html);

// Configure optional signing options and a handwritten signature graphic
Signature.SigningContact = "support@ironsoftware.com";
Signature.SigningLocation = "Chicago, USA";
Signature.SigningReason = "To show how to sign a PDF";

// Load a handwritten signature image
Signature.LoadSignatureImageFromFile("handwriting.png");

// Advanced security: Set permissions
doc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
doc.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
doc.SecuritySettings.AllowUserCopyPasteContent = false;

// Sign the PDF document with the digital signature
doc.SignPdfWithDigitalSignature(Signature);

// Add password protection
doc.Password = "userpassword";
doc.OwnerPassword = "ownerpassword";

// Save the signed PDF document
doc.SaveAs("Signed_ASPX_to_PDF.pdf");
$vbLabelText   $csharpLabel

Für vollständige Sicherheitsimplementierungen erkunden Sie die Ironsecuredoc-Dokumentation für erweiterte Dokumentenschutzfunktionen.## Wie geht jede Bibliothek mit modernen CSS-Frameworks und Bootstrap um?

Moderne Webanwendungen setzen häufig auf CSS-Frameworks wie Bootstrap für eine schnelle UI-Entwicklung und responsives Design. PDF-Generierungswerkzeuge müssen diese Rahmenlayouts präzise beibehalten, um eine professionelle Dokumentqualität zu gewährleisten.

IronPDF: Vollständige Unterstützung des Bootstrap Frameworks

Die Chromium-Rendering-Engine von IronPDF unterstützt moderne CSS-Frameworks vollständig:

  • Bootstrap 5: Vollständiges Flexbox- und CSS-Grid-Rendering mit allen responsiven Komponenten
  • Bootstrap 4: Vollständige Kartensysteme, Navigationsleisten und Hilfsklassen
  • Tailwind CSS: Alle Utility-First-Klassen und responsive Varianten
  • Foundation und andere Frameworks: Volle CSS3-Unterstützung bedeutet, dass alle modernen Frameworks korrekt funktionieren.
  • Fortgeschrittenes CSS: Flexbox, CSS Grid, benutzerdefinierte Eigenschaften, Animationen und Transformationen

Validierung in der Praxis: Die Bootstrap-Homepage und die Templates werden mit browsergenauer Wiedergabetreue konvertiert.

Code-Beispiel: Veranstaltungsplan mit Bootstrap-Karten

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure rendering for optimal Bootstrap output
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to fully load
renderer.RenderingOptions.ViewPortWidth = 1280; // Desktop viewport
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;

string bootstrapSchedule = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_135___ rel='stylesheet'>
    <style>
        @media print {
            .pagebreak { page-break-after: always; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Tech Conference 2025 - Schedule</h1>

        <div class='row g-4'>
            <div class='col-md-6'>
                <div class='card border-primary'>
                    <div class='card-header bg-primary text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Keynote Session</h5>
                        <span class='badge bg-light text-primary'>9:00 AM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
                        <p class='card-text'><strong>The Future of AI in Software Development</strong></p>
                        <p class='card-text'>Join us for an exploration of how artificial intelligence is transforming the software development environment.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_136___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Dr. Sarah Chen</div>
                                <small class='text-muted'>AI Research Lead</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-success'>
                    <div class='card-header bg-success text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Workshop</h5>
                        <span class='badge bg-light text-success'>10:30 AM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Workshop Room A</h6>
                        <p class='card-text'><strong>Hands-On: Cloud-Native Architecture</strong></p>
                        <p class='card-text'>Learn practical techniques for building flexible, cloud-native applications with modern frameworks.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_137___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Michael Rodriguez</div>
                                <small class='text-muted'>Cloud Architect</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-warning'>
                    <div class='card-header bg-warning text-dark d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Panel Discussion</h5>
                        <span class='badge bg-dark'>2:00 PM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
                        <p class='card-text'><strong>Security in Modern Web Applications</strong></p>
                        <p class='card-text'>Industry experts discuss current security challenges and best practices for protecting user data.</p>
                        <small class='text-muted'>Featuring 4 industry experts</small>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-info'>
                    <div class='card-header bg-info text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Technical Talk</h5>
                        <span class='badge bg-light text-info'>3:30 PM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Room B</h6>
                        <p class='card-text'><strong>Performance Optimization Strategies</strong></p>
                        <p class='card-text'>Deep dive into advanced techniques for improve application performance and reducing latency.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_138___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Alex Kim</div>
                                <small class='text-muted'>Performance Engineer</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='pagebreak'></div>

        <h2 class='mt-5'>Additional Sessions</h2>
        <div class='table-responsive'>
            <table class='table table-striped'>
                <thead>
                    <tr>
                        <th>Time</th>
                        <th>Session</th>
                        <th>Speaker</th>
                        <th>Location</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>11:45 AM</td>
                        <td>Lightning Talks</td>
                        <td>Various</td>
                        <td>Room C</td>
                    </tr>
                    <tr>
                        <td>1:00 PM</td>
                        <td>Networking Lunch</td>
                        <td>-</td>
                        <td>Cafeteria</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>";

// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(bootstrapSchedule);

// Add metadata
pdf.MetaData.Author = "Tech Conference Team";
pdf.MetaData.Title = "Conference Schedule 2025";
pdf.MetaData.Subject = "Event Schedule";

// Save the PDF
pdf.SaveAs("conference-schedule.pdf");

// Example: Generate responsive invoice with Bootstrap
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_139___ rel='stylesheet'>
    <link href='___PROTECTED_URL_140___ rel='stylesheet'>
</head>
<body>
    <div class='container mt-5'>
        <div class='row'>
            <div class='col-12'>
                <div class='card'>
                    <div class='card-body'>
                        <div class='row mb-4'>
                            <div class='col-sm-6'>
                                <h2 class='text-primary'><i class='fas fa-file-invoice'></i> INVOICE</h2>
                                <p class='mb-1'><strong>Invoice #:</strong> INV-2025-001</p>
                                <p class='mb-1'><strong>Date:</strong> " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                            </div>
                            <div class='col-sm-6 text-sm-end'>
                                <h4>Your Company Name</h4>
                                <p class='mb-1'>123 Business St</p>
                                <p class='mb-1'>City, State 12345</p>
                                <p>contact@company.com</p>
                            </div>
                        </div>

                        <hr>

                        <div class='row mb-4'>
                            <div class='col-sm-6'>
                                <h5>Bill To:</h5>
                                <p class='mb-1'><strong>Client Company</strong></p>
                                <p class='mb-1'>456 Client Ave</p>
                                <p>City, State 67890</p>
                            </div>
                        </div>

                        <div class='table-responsive'>
                            <table class='table table-bordered'>
                                <thead class='table-primary'>
                                    <tr>
                                        <th>Description</th>
                                        <th class='text-center'>Quantity</th>
                                        <th class='text-end'>Price</th>
                                        <th class='text-end'>Total</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td>Web Development Services</td>
                                        <td class='text-center'>40</td>
                                        <td class='text-end'>$150.00</td>
                                        <td class='text-end'>$6,000.00</td>
                                    </tr>
                                    <tr>
                                        <td>UI/UX Design</td>
                                        <td class='text-center'>20</td>
                                        <td class='text-end'>$125.00</td>
                                        <td class='text-end'>$2,500.00</td>
                                    </tr>
                                </tbody>
                                <tfoot>
                                    <tr>
                                        <td colspan='3' class='text-end'><strong>Subtotal:</strong></td>
                                        <td class='text-end'><strong>$8,500.00</strong></td>
                                    </tr>
                                    <tr>
                                        <td colspan='3' class='text-end'>Tax (10%):</td>
                                        <td class='text-end'>$850.00</td>
                                    </tr>
                                    <tr class='table-primary'>
                                        <td colspan='3' class='text-end'><strong>Total Due:</strong></td>
                                        <td class='text-end'><strong>$9,350.00</strong></td>
                                    </tr>
                                </tfoot>
                            </table>
                        </div>

                        <div class='alert alert-info mt-4'>
                            <i class='fas fa-info-circle'></i> Payment is due within 30 days. Thank you for your business!
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var invoicePdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
invoicePdf.SaveAs("bootstrap-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure rendering for optimal Bootstrap output
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to fully load
renderer.RenderingOptions.ViewPortWidth = 1280; // Desktop viewport
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;

string bootstrapSchedule = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_135___ rel='stylesheet'>
    <style>
        @media print {
            .pagebreak { page-break-after: always; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Tech Conference 2025 - Schedule</h1>

        <div class='row g-4'>
            <div class='col-md-6'>
                <div class='card border-primary'>
                    <div class='card-header bg-primary text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Keynote Session</h5>
                        <span class='badge bg-light text-primary'>9:00 AM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
                        <p class='card-text'><strong>The Future of AI in Software Development</strong></p>
                        <p class='card-text'>Join us for an exploration of how artificial intelligence is transforming the software development environment.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_136___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Dr. Sarah Chen</div>
                                <small class='text-muted'>AI Research Lead</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-success'>
                    <div class='card-header bg-success text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Workshop</h5>
                        <span class='badge bg-light text-success'>10:30 AM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Workshop Room A</h6>
                        <p class='card-text'><strong>Hands-On: Cloud-Native Architecture</strong></p>
                        <p class='card-text'>Learn practical techniques for building flexible, cloud-native applications with modern frameworks.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_137___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Michael Rodriguez</div>
                                <small class='text-muted'>Cloud Architect</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-warning'>
                    <div class='card-header bg-warning text-dark d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Panel Discussion</h5>
                        <span class='badge bg-dark'>2:00 PM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Main Auditorium</h6>
                        <p class='card-text'><strong>Security in Modern Web Applications</strong></p>
                        <p class='card-text'>Industry experts discuss current security challenges and best practices for protecting user data.</p>
                        <small class='text-muted'>Featuring 4 industry experts</small>
                    </div>
                </div>
            </div>

            <div class='col-md-6'>
                <div class='card border-info'>
                    <div class='card-header bg-info text-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Technical Talk</h5>
                        <span class='badge bg-light text-info'>3:30 PM</span>
                    </div>
                    <div class='card-body'>
                        <h6 class='card-subtitle mb-2 text-muted'>Room B</h6>
                        <p class='card-text'><strong>Performance Optimization Strategies</strong></p>
                        <p class='card-text'>Deep dive into advanced techniques for improve application performance and reducing latency.</p>
                        <div class='d-flex align-items-center'>
                            <img src='___PROTECTED_URL_138___ class='rounded-circle me-2' alt='Speaker'>
                            <div>
                                <div class='fw-bold'>Alex Kim</div>
                                <small class='text-muted'>Performance Engineer</small>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='pagebreak'></div>

        <h2 class='mt-5'>Additional Sessions</h2>
        <div class='table-responsive'>
            <table class='table table-striped'>
                <thead>
                    <tr>
                        <th>Time</th>
                        <th>Session</th>
                        <th>Speaker</th>
                        <th>Location</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>11:45 AM</td>
                        <td>Lightning Talks</td>
                        <td>Various</td>
                        <td>Room C</td>
                    </tr>
                    <tr>
                        <td>1:00 PM</td>
                        <td>Networking Lunch</td>
                        <td>-</td>
                        <td>Cafeteria</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>
</html>";

// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(bootstrapSchedule);

// Add metadata
pdf.MetaData.Author = "Tech Conference Team";
pdf.MetaData.Title = "Conference Schedule 2025";
pdf.MetaData.Subject = "Event Schedule";

// Save the PDF
pdf.SaveAs("conference-schedule.pdf");

// Example: Generate responsive invoice with Bootstrap
string bootstrapInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_139___ rel='stylesheet'>
    <link href='___PROTECTED_URL_140___ rel='stylesheet'>
</head>
<body>
    <div class='container mt-5'>
        <div class='row'>
            <div class='col-12'>
                <div class='card'>
                    <div class='card-body'>
                        <div class='row mb-4'>
                            <div class='col-sm-6'>
                                <h2 class='text-primary'><i class='fas fa-file-invoice'></i> INVOICE</h2>
                                <p class='mb-1'><strong>Invoice #:</strong> INV-2025-001</p>
                                <p class='mb-1'><strong>Date:</strong> " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                            </div>
                            <div class='col-sm-6 text-sm-end'>
                                <h4>Your Company Name</h4>
                                <p class='mb-1'>123 Business St</p>
                                <p class='mb-1'>City, State 12345</p>
                                <p>contact@company.com</p>
                            </div>
                        </div>

                        <hr>

                        <div class='row mb-4'>
                            <div class='col-sm-6'>
                                <h5>Bill To:</h5>
                                <p class='mb-1'><strong>Client Company</strong></p>
                                <p class='mb-1'>456 Client Ave</p>
                                <p>City, State 67890</p>
                            </div>
                        </div>

                        <div class='table-responsive'>
                            <table class='table table-bordered'>
                                <thead class='table-primary'>
                                    <tr>
                                        <th>Description</th>
                                        <th class='text-center'>Quantity</th>
                                        <th class='text-end'>Price</th>
                                        <th class='text-end'>Total</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td>Web Development Services</td>
                                        <td class='text-center'>40</td>
                                        <td class='text-end'>$150.00</td>
                                        <td class='text-end'>$6,000.00</td>
                                    </tr>
                                    <tr>
                                        <td>UI/UX Design</td>
                                        <td class='text-center'>20</td>
                                        <td class='text-end'>$125.00</td>
                                        <td class='text-end'>$2,500.00</td>
                                    </tr>
                                </tbody>
                                <tfoot>
                                    <tr>
                                        <td colspan='3' class='text-end'><strong>Subtotal:</strong></td>
                                        <td class='text-end'><strong>$8,500.00</strong></td>
                                    </tr>
                                    <tr>
                                        <td colspan='3' class='text-end'>Tax (10%):</td>
                                        <td class='text-end'>$850.00</td>
                                    </tr>
                                    <tr class='table-primary'>
                                        <td colspan='3' class='text-end'><strong>Total Due:</strong></td>
                                        <td class='text-end'><strong>$9,350.00</strong></td>
                                    </tr>
                                </tfoot>
                            </table>
                        </div>

                        <div class='alert alert-info mt-4'>
                            <i class='fas fa-info-circle'></i> Payment is due within 30 days. Thank you for your business!
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var invoicePdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);
invoicePdf.SaveAs("bootstrap-invoice.pdf");
$vbLabelText   $csharpLabel

Ergebnis: Ein professioneller Konferenzplan mit Bootstraps Kartenraster, Flexbox-Ausrichtung, Badge-Komponenten und responsivem Layout – alles präzise im PDF dargestellt.

XFINIUM.PDF: Eingeschränkte HTML- und Framework-Unterstützung

XFINIUM.PDF konzentriert sich auf die PDF-Erstellung und -Bearbeitung und nicht auf die HTML-zu-PDF-Konvertierung. Die Bibliothek hat erhebliche Einschränkungen für Bootstrap und moderne CSS-Frameworks:

  • Keine native HTML-Darstellung: XFINIUM.PDF enthält keine integrierte HTML-zu-PDF-Konvertierungs-Engine.
  • Nur grundlegende HTML-Unterstützung: Beschränkt auf einfache HTML-Strukturen ohne erweitertes CSS
  • Keine Bootstrap-Unterstützung: Moderne Bootstrap-Frameworks (4/5) mit Flexbox und CSS Grid werden nicht unterstützt.
  • Umgehungslösungen erforderlich: Entwickler müssen Low-Level-PDF-APIs verwenden, um Layouts manuell nachzubilden.
  • Erforderliche externe Tools: Möglicherweise ist die Integration externer HTML-Rendering-Engines erforderlich.

Auswirkungen auf die Entwicklung: Anwendungen, die Bootstrap oder moderne CSS-Frameworks verwenden, können ihre Benutzeroberfläche nicht direkt mit XFINIUM.PDF in PDF konvertieren. Entwickler müssen entweder:

  1. Layouts mit den Low-Level-Drawing-APIs von XFINIUM.PDF neu erstellen (erheblicher Entwicklungsaufwand)
  2. Externe HTML-Wiedergabe-Tools integrieren (zusätzliche Komplexität und Abhängigkeiten)
  3. Separate PDF-Layout-Code parallel zur Web-UI pflegen (Wartungsaufwand)

Bei Projekten, die eine HTML-zu-PDF-Konvertierung mit modernen Frameworks erfordern, erfordern die Einschränkungen von XFINIUM.PDF einen erheblichen zusätzlichen Entwicklungsaufwand.

Vollständige Unterstützung für Bootstrap und moderne CSS-Frameworks finden Sie im Bootstrap & Flexbox CSS Guide.

Welche Preis- und Lizenzoptionen gibt es?

XFINIUM.PDF Preise und Lizenzierung

Jedes Paket ist in zwei Editionen erhältlich: der Generator Edition für die PDF-Erstellung/-Bearbeitung und der Viewer Edition, die alle Generator-Funktionen sowie das Rendern und Anzeigen von PDFs enthält.

  • Jeder Entwickler benötigt eine Lizenz.
  • Lizenzgebührenfreie Verteilung an unbegrenzt viele Desktop-PCs/Server.
  • Das Support-Abonnement beinhaltet ein Jahr Updates/Support.

Die Preise liegen zwischen 290,00 $ und 872,00 $ pro Jahr.

IronPDF Preise und Lizenzierung

IronPDF ist für die Entwicklung kostenlos und kann jederzeit für die kommerzielle Nutzung lizenziert werden. Zu den Optionen gehören Lizenzen für Einzelprojekte, einzelne Entwickler, Agenturen, multinationale Unternehmen und den Weitervertrieb von SaaS-/OEM-Lösungen. Alle Lizenzen beinhalten eine 30-Tage-Geld-zurück-Garantie, ein Jahr Support/Upgrades, Gültigkeit für Entwicklung/Staging/Produktion und eine unbefristete Lizenz (einmaliger Kauf). Das Lite-Paket ist ab $799 erhältlich und es fallen keine weiteren Kosten an.

Welche PDF-Bibliothek soll ich wählen?

Die IronPDF-Bibliothek vereinfacht die PDF-Erstellung ohne proprietäre APIs. "HTML-zu-PDF" konvertiert offene Standarddokumente wie HTML, JS, CSS, JPG, PNG, GIF und SVG in pixelgenaue PDFs. Es baut auf vorhandenen Entwicklerkenntnissen auf. Sie können Dokumente herunterladen, per E-Mail versenden oder in der Cloud speichern und so Rechnungen, Angebote, Berichte, Verträge und andere Dokumente erstellen. Es funktioniert mit ASP.NET, ASP.NET Core, Web-Formen, MVC, .NET Framework und .NET Core Web-APIs.

XFINIUM.PDF bietet Funktionen für Anfänger und fortgeschrittene PDF-Entwickler. Egal ob Sie Berichte erstellen, PDF-Formulare ausfüllen, Portfolios zusammenstellen, Informationen schwärzen oder PDFs in mehrseitige TIFFs konvertieren müssen, es bietet Ihnen die notwendigen Werkzeuge. Das grundlegende Objektmodell orientiert sich an den PDF-Spezifikationen. Der Code lässt sich ohne Änderungen auf allen Plattformen kompilieren.

XFINIUM.PDF-Lizenzen sind ab 290 US-Dollar (Generator) bzw. 387 US-Dollar (Viewer) erhältlich. IronPDF beginnt bei $799 . IronPDF bietet sowohl Einzel- als auch Mehrbenutzerlizenzen an, während XFINIUM.PDF Lizenzen pro Entwickler erfordert. Die professionelle Lizenz von IronPDF (799 US-Dollar) unterstützt eine unbegrenzte Anzahl von Benutzern.

IronPDF benötigt für die PDF-Manipulation weniger Codezeilen als XFINIUM.PDF, wodurch der Programmieraufwand reduziert wird.

Iron Software bietet seine komplette Softwarelösung mit nur zwei Klicks an. Zum Preis von zwei Bibliotheken erhalten Sie aktuell alle fünf Bibliotheken inklusive kontinuierlichem Support.

Hinweis:XFINIUM.PDF ist eine eingetragene Marke des jeweiligen Eigentümers. Diese Seite ist nicht mit XFINIUM.PDF verbunden, wird nicht von XFINIUM.PDF unterst\u00fctzt oder gesponsert.<\/S> Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Die Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich verfügbare Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Was sind die Hauptfunktionen von IronPDF für die HTML-zu-PDF-Konvertierung?

IronPDF nutzt die .NET Chromium-Engine, um HTML in PDF zu konvertieren. Es unterstützt HTML5, CSS, JavaScript und Bildintegration, was es zu einer umfassenden Lösung für die Erstellung von PDFs aus Webinhalten macht.

Wie schneidet XFINIUM.PDF im Vergleich zu anderen PDF-Bibliotheken für .NET ab?

XFINIUM.PDF ist eine plattformübergreifende Bibliothek, die zwei Ausgaben bietet: Generator und Viewer. Sie zeichnet sich durch die Erstellung, Bearbeitung und Darstellung von PDFs aus und umfasst Funktionen wie Sicherheit, digitale Signaturen und Barcode-Unterstützung.

Kann IronPDF auf Cloud-Plattformen wie Azure und AWS verwendet werden?

Ja, IronPDF ist mit verschiedenen Plattformen kompatibel, darunter Azure und AWS, was eine flexible Bereitstellung von PDF-Lösungen in Cloud-Umgebungen ermöglicht.

Welche Installationsoptionen gibt es für IronPDF in .NET-Projekten?

IronPDF kann mit dem NuGet-Paket-Manager von Visual Studio, dem Developer Command Prompt oder durch direktes Herunterladen des NuGet-Pakets oder der Bibliothek DLL installiert werden.

Welche Möglichkeiten zur PDF-Bearbeitung bietet IronPDF?

IronPDF ermöglicht umfassende PDF-Bearbeitungen, darunter das Ausfüllen von Formularfeldern, das Zusammenführen von Dokumenten und das Extrahieren von Text und Bildern. Es unterstützt auch das Hinzufügen von Kopf- und Fußzeilen sowie Anmerkungen.

Wie unterscheiden sich die Lizenzoptionen zwischen IronPDF und XFINIUM.PDF?

XFINIUM.PDF bietet Lizenzen ab 290 US-Dollar pro Entwickler mit lizenzfreier Verteilung. IronPDF bietet umfassendere Lizenzoptionen, einschließlich einer professionellen Lizenz für unbegrenzte Benutzer.

Welche Sicherheitsfunktionen bietet XFINIUM.PDF?

XFINIUM.PDF unterstützt Sicherheitsfunktionen wie Benutzer- und Eigentümerpasswörter, Zugriffsrechte für Dokumente, RC4- und AES-Verschlüsselung sowie Inhaltsreduzierung zur Sicherung von Dokumenten.

Warum sollten Entwickler IronPDF für ihre Projekte wählen?

Entwickler könnten IronPDF wegen seines vereinfachten Ansatzes zur PDF-Manipulation wählen, der weniger Codezeilen erfordert, sowie seiner Flexibilität mit Einzel- und Mehrbenutzerlizenzen.

Wie handhabt IronPDF das Ausfüllen von Formularen in PDFs?

IronPDF bietet Werkzeuge zum Ausfüllen von Formularfeldern innerhalb von PDFs, was die dynamische Dokumentenerstellung und Benutzerinteraktion ermöglicht.

Welche Möglichkeiten zur digitalen Signierung bieten diese PDF-Bibliotheken?

Sowohl IronPDF als auch XFINIUM.PDF unterstützen digitale Signaturen, die eine sichere Validierung der Dokumentechtheit und -integrität ermöglichen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen