Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

IronPDF vs XFINIUM.PDF: HTML zu PDF-Bibliotheksvergleich for .NET

IronPDF zeichnet sich durch die HTML-zu-PDF-Konvertierung mit vollständiger CSS- und JavaScript-Unterstützung unter Verwendung der Chromium-Engine aus. Im Gegensatz dazu spezialisiert sich XFINIUM.PDF auf die Low-Level-PDF-Bearbeitung ohne native HTML-Darstellung, was IronPDF zu einer geeigneteren Wahl für die moderne, webbasierte PDF-Erstellung in .NET-Anwendungen macht.

Moderne Technologie bietet intelligentere Lösungen für Entwickler, wobei Automatisierung die Softwareentwicklungsprozesse antreibt. Die Arbeit mit C#-PDF-Dateien war schon lange eine Herausforderung für Entwickler. Es müssen mehrere Faktoren berücksichtigt werden, wenn Inhalte für PDF-Dateien erstellt werden, und noch mehr, wenn Inhalte aus verschiedenen Formaten in PDF konvertiert werden. Diese Herausforderungen werden nun durch Bibliotheken angegangen, die beim Lesen, Schreiben, Erstellen und Konvertieren von PDFs aus verschiedenen Formaten unterstützen.

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 für die PDF-Konvertierung und -Bearbeitung überprüfen.

Zuerst erkunden wir, was die beiden Bibliotheken bieten, dann gehen wir zum Vergleich über.

Was sind die Funktionen der XFINIUM.PDF-Bibliothek?

Die XFINIUM.PDF-Bibliothek ist ein plattformübergreifendes Tool für die PDF-Entwicklung, das sowohl Anfängern als auch fortgeschrittenen PDF-Entwicklern gerecht wird. Sie können Berichte erstellen, PDF-Formulare ausfüllen, PDF-Portfolios konstruieren, sensible Daten aus PDF-Berichten schwärzen oder PDF-Berichte in mehrseitige TIFF-Bilder konvertieren.

XFINIUM.PDF ist in zwei Editionen erhältlich: die Generator-Edition, die PDF-Produktion und -Bearbeitung umfasst, und die Viewer-Edition, die PDF-Darstellung und PDF-Anzeige hinzufügt.

XFINIUM.PDF ist vollständig in C# als vollständig verwalteter Code geschrieben. Es ist pro Entwickler lizenziert mit gebührenfreier Verteilung, sodass Sie Ihr Programm ohne zusätzliche Kosten vertreiben 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-Funktionen zum Erstellen und Bearbeiten von PDFs, während die Viewer-Edition Fähigkeiten zur PDF-Darstellung hinzufügt. 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

  • Eingebauter Vektor-Barcodeleser – Eindimensionale Barcodes:
    • Codabar, Code 11, Code 25, Code 39/93/128
    • Pharmaindustrie: Code 32, Pharmacode, PZN – Zweidimensionale Barcodes:
    • DataMatrix, QR, PDF417, Micro PDF417

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

Inhaltsextraktion

COS-API auf niedriger Ebene

– COS-Objekte hinzufügen, bearbeiten und entfernen

  • Unterstützte Typen: Zeichenketten, Zahlen, Namen, Booleans, Nullwerte, Arrays, Wörterbücher, Streams

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 einfach eine zentrale PDF-Bibliothek for .NET erstellen.

IronPDF konvertiert HTML-Seiten in PDF-Dateien unter Verwendung der .NET Chromium-Engine. Sie benötigen keine komplizierten APIs, um PDFs mit HTML in PDF zu positionieren oder zu gestalten. Standard-Webdokumente werden unterstützt, einschließlich 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 verbessert werden. Die Bibliothek verwaltet das Lesen von PDF-Text 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)

Bestehende PDF-Dokumente bearbeiten

PDF-Dokumente bearbeiten

Verschiedene Dateiformate konvertieren

Drucken und Speichern

IronPDF unterstützt alle wichtigen 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-Befehlszeile
  3. Laden Sie das NuGet-Paket direkt herunter
  4. Laden Sie die IronPDF .DLL-Bibliothek herunter

Verwendung von Visual Studio

Visual Studio bietet den NuGet Package Manager, um Pakete in Ihren Projekten zu installieren. Zugriff über das Projektmenü oder durch Rechtsklick auf Ihr Projekt im Lösungsexplorer.

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

Sobald ausgewählt, suchen Sie nach dem IronPDF-Paket und installieren Sie 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-Befehlszeile:

  • Öffnen Sie die Entwickler-Befehlszeile
  • 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:

  • Wechseln Sie zur IronPdf NuGet-Seite
  • Wählen Sie Paket herunterladen
  • Doppelklicken Sie auf das heruntergeladene Paket
  • Das Paket wird 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-Download 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:

  • Rechtsklick auf die Lösung im Lösungsexplorer – Wählen Sie Verweise
  • Suchen Sie nach der IronPDF.dll-Bibliothek – OK klicken

IronPDF ist nun einsatzbereit. Jetzt installieren wir XFINIUM.PDF.

Wie installiere ich XFINIUM.PDF?

In .NET Core installieren Sie Xfinium PDF als Cake-Addin 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

Jetzt vergleichen wir IronPDF und XFINIUM.PDF.

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

Softwareentwickler müssen wissen, wie man PDF-Dateien dynamisch erstellt unter Verwendung von C#. Sie benötigen möglicherweise die PDF-Erstellung für die Erstellung von Berichten aus Benutzereingaben, das Speichern von Benutzertext als PDF, das Extrahieren von HTML-Informationen und das Umwandeln in PDF und mehr.

Beide Bibliotheken können HTML-Webseiten in PDF konvertieren. Werfen wir einen Blick auf die Herangehensweise jeder Bibliothek.

Verwendung von IronPDF

IronPDF bietet mehrere Methoden zur Erstellung von PDF-Dateien.

Bestehende URL zu PDF

IronPDF vereinfacht die Umwandlung von HTML in PDF-Dokumente aus bestehenden URLs. JavaScript, Bilder, Formulare und CSS erhalten volle Unterstützung.

Die Implementierung übernimmt die 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 für das Rendern einer PDF-Seite aus einem HTML-String. Sie können HTML allein oder in Kombination mit CSS, Bildern und JavaScript verwenden:

// 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

Für fortgeschrittene HTML-zu-PDF-Konvertierungstechniken siehe das HTML-zu-PDF-Tutorial.

Verwendung von XFINIUM.PDF

Das Erstellen eines leeren PDF-Dokuments mit XFINIUM.PDF erfordert drei Zeilen: das Dokument erstellen, eine 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: eine Schriftart erstellen, einen Pinsel für Farbe erstellen und Text zeichnen:

// 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 beim Aufbau komplexer Abstraktionen wie Flussdokumente.## Wie erstelle ich ausfüllbare PDF-Dateien

Verwendung von XFINIUM.PDF

XFINIUM.PDF ermöglicht Ihnen die Erstellung neuer PDF-Formulare und das Ausfüllen bestehender PDF-Formulare.

Jeder PDF-Formulartyp hat eine entsprechende Klasse:

  • PdfTextBoxField – Textfeld-Felder
  • PdfCheckBoxField – Kontrollkästchen
  • PdfRadioButtonField – Options-Set
  • PdfComboboxField – Kombinationsfelder
  • PdfListboxField – Listenfelder
  • PdfPushbuttonField – Druckknöpfe
  • 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 setzen seine Attribute:

// 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 bestehende PDF-Formulare auszufüllen, laden Sie sie in ein PdfFixedDocument Objekt. Die Felder-Sammlung des Dokuments wird automatisch ausgefüllt. Sie können Felder nach Index oder Namen finden und sie durch Setzen der Wert-Eigenschaften ausfü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

Hier erfahren Sie, wie Sie mithilfe von IronPDF ausfüllbare PDFs erstellen:

// 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 der Erstellung eines Formulars mit HTML-Formatierungstags. Die Bibliothek übernimmt die Komplexität beim Speichern als PDF. Das Lesen und Schreiben von Formularwerten erfolgt mit der FindFormField-Funktion. Ihre Anwendung kann diese Funktion sofort nutzen, um Formulare programmgesteuert auszufüllen.

Für erweitertes Formularhandling, einschließlich digitaler Signaturen, siehe das PDF-Formularerstellungstutorial.

Wie signiere ich PDF-Dateien digital?

Fernarbeit erfordert effiziente Dokumentenverarbeitung. Formulare ausfüllen und signieren, Dateien senden und Dokumente verarbeiten sind tägliche Geschäftsaktivitäten. PDF-Dokumente, Portfolios und Formulare zu signieren ersetzt Papierdokumente. Digitale Signaturen ermöglichen es Unternehmen, Vereinbarungen zu unterzeichnen und PDF-Formulare online zu teilen.

Verwendung von XFINIUM.PDF

Ein Signaturfeld wendet digitale Signaturen in PDF-Dateien an (PdfSignatureField Klasse). Obwohl das Signaturfeld auf einer Seite erscheint, signiert die digitale Signatur das gesamte Dokument.

Der Signiervorgang verwendet ein PdfDigitalSignature-Objekt, um das Signaturattribut festzulegen. Die Signatur entsteht beim Speichern des Dokuments basierend auf dem binären Layout der PDF-Datei.

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

  • PdfCmsDigitalSignature – CMS-Standardsignatur (erbt von PdfDigitalSignature)
  • PdfPadesDigitalSignature – PADES-Standardsignatur (erbt von PdfCmsDigitalSignature)
  • PdfInteractiveCmsDigitalSignature – CMS-Signatur unter Verwendung einer Hardware-Smartcard
  • PdfInteractivePadesDigitalSignature – PADES mit Unterstützung durch Hardware-Smartcard
  • PdfDocumentTimeStamp – Dokumentenebene-Zeitstempel (erbt von PdfDigitalSignature)

Verwendung von IronPDF

Entwickler fragen häufig nach dem Programmieren von Signaturen hinzufügen zu PDFs mit IronPDF und C#. Das kann bedeuten:

  • Hinzufügen von grafischen Signaturbildern aus Dateien
  • Kryptografisches Signieren, um Manipulationen zu verhindern
  • Hinzufügen handschriftlicher Signatursymbole mit kryptografischem Signieren

Der erste Ansatz umfasst das Stempeln eines Signatur-PNGs auf vorhandene PDF-Seiten. Verwenden Sie es für Signaturen 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

Kryptografisch signieren Sie PDFs mit .pfx und .p12 X509Certificate2 digitalen Zertifikaten mit einer Zeile:

// 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 .pfx / .p12 X509Certificate2 digitale ID-Signierung 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 handhabt jede Bibliothek moderne CSS-Frameworks und Bootstrap?

Moderne Webanwendungen verlassen sich oft auf CSS-Frameworks wie Bootstrap für schnelle UI-Entwicklung und responsives Design. PDF-Erstellungswerkzeuge müssen diese Framework-Layouts genau erhalten, um eine professionelle Dokumentenqualität sicherzustellen.

IronPDF: Vollständige Unterstützung des Bootstrap Frameworks

IronPDFs Chromium-Rendering-Engine unterstützt vollständig moderne CSS-Frameworks:

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

Praxisvalidierung: Die Bootstrap-Homepage und Vorlagen werden mit browsergenauer Treue 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

Ausgabe: Ein professioneller Konferenzzeitplan mit Bootstraps Kartenraster, Flexbox-Ausrichtung, Abzeichenkomponenten und responsivem Layout – alles genau im PDF gerendert.

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

XFINIUM.PDF konzentriert sich eher auf PDF-Erstellung und -Bearbeitung als auf 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
  • Einfache 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
  • Anpassungen erforderlich: Entwickler müssen Low-Level-PDF-APIs verwenden, um Layouts manuell nachzubilden
  • Externe Werkzeuge benötigt: Möglicherweise ist die Integration mit externen HTML-Rendering-Engines erforderlich

Entwicklungsaufwand: 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)

Für Projekte, die HTML-zu-PDF-Konvertierung mit modernen Frameworks erfordern, erfordern die Einschränkungen von XFINIUM.PDF erhebliche zusätzliche Entwicklungsarbeit.

Für vollständige Bootstrap- und moderne CSS-Framework-Unterstützung siehe den Bootstrap & Flexbox CSS Guide.

Was sind die Preis- und Lizenzierungsoptionen?

XFINIUM.PDF Preise und Lizenzierung

Jedes Paket ist in zwei Editionen erhältlich: Generator Edition für PDF-Erstellung/-Bearbeitung und Viewer Edition, die alle Generator-Funktionen plus PDF-Darstellung und -Anzeige enthält.

  • Jeder Entwickler benötigt eine Lizenz.
  • Gebührenfreie Verteilung auf unbegrenzte Desktops/Server.
  • Das Assistance-Abonnement beinhaltet ein Jahr Updates/Support.

Die Preise reichen von 290,00 $ bis 872,00 $ pro Jahr.

IronPDF Preise und Lizenzierung

IronPDF ist kostenlos für die Entwicklung und kann jederzeit für den kommerziellen Gebrauch lizenziert werden. Optionen umfassen Einzelprojektlizenzen, einzelne Entwickler, Agenturen, multinationale Organisationen und SaaS/OEM-Weiterverteilung. Alle Lizenzen beinhalten eine 30-tägige Geld-zurück-Garantie, ein Jahr Support/Upgrades, Gültigkeit in Entwicklung/Bereitstellung/Produktion und eine unbefristete Lizenz (Einmalkauf). Das Lite-Paket beginnt bei $799 ohne wiederkehrende Ausgaben.

Welche PDF-Bibliothek sollte ich wählen?

Die IronPDF-Bibliothek vereinfacht die PDF-Erstellung ohne proprietäre APIs. "HTML-To-PDF" konvertiert offene Standarddokumente wie HTML, JS, CSS, JPG, PNG, GIF und SVG in pixelgenaue PDFs. Es baut auf vorhandenen Entwicklerfähigkeiten auf. Sie können Dokumente herunterladen, sie per E-Mail senden oder in der Cloud speichern und Rechnungen, Angebote, Berichte, Verträge und andere Unterlagen 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 konstruieren, Informationen schwärzen oder PDFs in mehrseitige TIFFs konvertieren müssen, es bietet die erforderlichen Werkzeuge. Das grundlegende Objektmodell folgt den PDF-Spezifikationen. Der Code wird ohne Änderungen auf allen Plattformen kompiliert.

XFINIUM.PDF-Lizenzen beginnen bei 290 $ (Generator) und 387 $ (Viewer) Editionen. IronPDF beginnt bei $799. IronPDF bietet sowohl Einzel- als auch Mehrbenutzerlizenzen an, während XFINIUM.PDF Lizenzen pro Entwickler erfordert. IronPDFs Professional-Lizenz (799 $) unterstützt unbegrenzte Benutzer.

IronPDF benötigt weniger Codezeilen für die PDF-Bearbeitung als XFINIUM.PDF und reduziert so die Arbeitsbelastung der Programmierer.

Iron Software bietet seine komplette Suite mit zwei Klicks an. Für den Preis von zwei Bibliotheken erhalten Sie derzeit alle fünf Bibliotheken mit kontinuierlichem Support.

Hinweis:XFINIUM.PDF ist ein eingetragenes Warenzeichen seines jeweiligen Besitzers. Diese Seite ist nicht mit XFINIUM.PDF verbunden, wird nicht von XFINIUM.PDF unterst\u00fctzt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche 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 for .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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me