Wie man ein PDF in C# bearbeitet;
Einführung
Iron Software hat in der IronPDF-Bibliothek viele verschiedene PDF-Bearbeitungsfunktionen zu leicht verständlichen Methoden vereinfacht. Sei es das Hinzufügen von Unterschriften, von HTML-Fußzeilen, von Wasserzeichen oder von Kommentaren. IronPDF ist das Werkzeug für Sie, das Ihnen lesbaren Code, programmatische PDF-Erzeugung, einfaches Debugging und eine einfache Bereitstellung in jeder unterstützten Umgebung oder Plattform ermöglicht.
IronPDF verfügt über unzählige Funktionen für die Bearbeitung von PDF-Dateien. In diesem Tutorial-Artikel werden wir einige der wichtigsten mit Code-Beispielen und einigen Erklärungen durchgehen.
Mit diesem Artikel haben Sie ein gutes Verständnis dafür, wie Sie IronPDF verwenden können, um Ihre PDFs in C# zu bearbeiten.
Inhaltsübersicht
Dokumentenstruktur bearbeiten
- PDFs zusammenfügen und aufteilen
Dokumenteigenschaften bearbeiten
- PDFs komprimieren
PDF-Inhalt bearbeiten
- Hintergründe und Vordergründe hinzufügen
Stempeln und Wasserzeichen
- Beispiel für Längencode
Verwendung von Formularen in PDFs
Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.
Dokumentstruktur bearbeiten
Seiten manipulieren
Das Hinzufügen von PDFs zu bestimmten Indizes, das Kopieren von Seiten als Bereich oder einzeln und das Löschen von Seiten aus jeder PDF ist ein Kinderspiel mit IronPDF, das sich um alles im Hintergrund kümmert.
Seiten hinzufügen
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-1.cs
var pdf = new PdfDocument("report.pdf"); var renderer = new ChromePdfRenderer(); var coverPagePdf = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>"); pdf.PrependPdf(coverPagePdf); pdf.SaveAs("report_with_cover.pdf");
Dim pdf = New PdfDocument("report.pdf") Dim renderer = New ChromePdfRenderer() Dim coverPagePdf = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>") pdf.PrependPdf(coverPagePdf) pdf.SaveAs("report_with_cover.pdf")
Seiten kopieren
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-2.cs
var pdf = new PdfDocument("report.pdf"); // Copy pages 5 to 7 and save them as a new document. pdf.CopyPages(4, 6).SaveAs("report_highlight.pdf");
Dim pdf = New PdfDocument("report.pdf") ' Copy pages 5 to 7 and save them as a new document. pdf.CopyPages(4, 6).SaveAs("report_highlight.pdf")
Seiten löschen
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-3.cs
var pdf = new PdfDocument("report.pdf"); // Remove the last page from the PDF and save again pdf.RemovePage(pdf.PageCount - 1); pdf.SaveAs("report_minus_one_page.pdf");
Dim pdf = New PdfDocument("report.pdf") ' Remove the last page from the PDF and save again pdf.RemovePage(pdf.PageCount - 1) pdf.SaveAs("report_minus_one_page.pdf")
Zusammenführen und Teilen von PDFs
Das Zusammenführen von PDFs zu einem PDF oder das Aufteilen eines bestehenden PDFs ist mit der intuitiven API von IronPDF ganz einfach möglich.
Mehrere vorhandene PDFs zu einem einzigen PDF-Dokument zusammenfügen
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-4.cs
var pdfs = new List<PdfDocument> { PdfDocument.FromFile("A.pdf"), PdfDocument.FromFile("B.pdf"), PdfDocument.FromFile("C.pdf") }; PdfDocument mergedPdf = PdfDocument.Merge(pdfs); mergedPdf.SaveAs("merged.pdf"); foreach (var pdf in pdfs) { pdf.Dispose(); }
Dim pdfs = New List(Of PdfDocument) From {PdfDocument.FromFile("A.pdf"), PdfDocument.FromFile("B.pdf"), PdfDocument.FromFile("C.pdf")} Dim mergedPdf As PdfDocument = PdfDocument.Merge(pdfs) mergedPdf.SaveAs("merged.pdf") For Each pdf In pdfs pdf.Dispose() Next pdf
Um das Zusammenführen von zwei oder mehr PDFs auf unserer Seite mit Code-Beispielen zu sehen, besuchen Sie bitte hier.
Aufteilen einer PDF-Datei und Extrahieren von Seiten
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-5.cs
var pdf = new PdfDocument("sample.pdf"); // Take the first page var pdf_page1 = pdf.CopyPage(0); pdf_page1.SaveAs("Split1.pdf"); // Take the pages 2 & 3 var pdf_page2_3 = pdf.CopyPages(1, 2); pdf_page2_3.SaveAs("Spli2t.pdf");
Dim pdf = New PdfDocument("sample.pdf") ' Take the first page Dim pdf_page1 = pdf.CopyPage(0) pdf_page1.SaveAs("Split1.pdf") ' Take the pages 2 & 3 Dim pdf_page2_3 = pdf.CopyPages(1, 2) pdf_page2_3.SaveAs("Spli2t.pdf")
Um das Aufteilen und Extrahieren von Seiten auf unserer Seite mit Codebeispielen zu sehen, besuchen Sie bitte hier.
Dokumenteigenschaften bearbeiten
Hinzufügen und Verwenden von PDF-Metadaten
Mit IronPDF können Sie PDF-Metadaten problemlos durchsuchen und bearbeiten:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-6.cs
// Open an Encrypted File, alternatively create a new PDF from Html var pdf = PdfDocument.FromFile("encrypted.pdf", "password"); // Edit file metadata pdf.MetaData.Author = "Satoshi Nakamoto"; pdf.MetaData.Keywords = "SEO, Friendly"; pdf.MetaData.ModifiedDate = System.DateTime.Now; // Edit file security settings // The following code makes a PDF read only and will disallow copy & paste and printing pdf.SecuritySettings.RemovePasswordsAndEncryption(); pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key"); pdf.SecuritySettings.AllowUserAnnotations = false; pdf.SecuritySettings.AllowUserCopyPasteContent = false; pdf.SecuritySettings.AllowUserFormData = false; pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights; // Change or set the document encryption password pdf.SecuritySettings.OwnerPassword = "top-secret"; // password to edit the pdf pdf.SecuritySettings.UserPassword = "shareable"; // password to open the pdf pdf.SaveAs("secured.pdf");
Imports System ' Open an Encrypted File, alternatively create a new PDF from Html Dim pdf = PdfDocument.FromFile("encrypted.pdf", "password") ' Edit file metadata pdf.MetaData.Author = "Satoshi Nakamoto" pdf.MetaData.Keywords = "SEO, Friendly" pdf.MetaData.ModifiedDate = DateTime.Now ' Edit file security settings ' The following code makes a PDF read only and will disallow copy & paste and printing pdf.SecuritySettings.RemovePasswordsAndEncryption() pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key") pdf.SecuritySettings.AllowUserAnnotations = False pdf.SecuritySettings.AllowUserCopyPasteContent = False pdf.SecuritySettings.AllowUserFormData = False pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights ' Change or set the document encryption password pdf.SecuritySettings.OwnerPassword = "top-secret" ' password to edit the pdf pdf.SecuritySettings.UserPassword = "shareable" ' password to open the pdf pdf.SaveAs("secured.pdf")
Digitale Signaturen
IronPDF bietet Optionen zum digitalen Signieren neuer oder vorhandener PDF-Dateien unter Verwendung der digitalen Zertifikate .pfx und .p12 X509Certificate2.
Sobald eine PDF-Datei signiert ist, kann sie nicht mehr geändert werden, ohne dass das Zertifikat validiert wird. Dies gewährleistet die Treue.
Um ein kostenloses Signierzertifikat mit Adobe Reader zu erstellen, lesen Sie bitte https://helpx.adobe.com/acrobat/using/digital-ids.html
Neben der kryptografischen Unterzeichnung kann auch ein handschriftliches Unterschriftsbild oder ein Firmenstempelbild zur Unterzeichnung mit IronPDF verwendet werden.
Kryptographisch signieren Sie ein bestehendes PDF mit nur einer Codezeile!
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-7.cs
using IronPdf; using IronPdf.Signing; new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");
Imports IronPdf Imports IronPdf.Signing Call (New IronPdf.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")
Ein fortschrittlicheres Beispiel, das mehr Kontrolle bietet:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-8.cs
using IronPdf; // Step 1. Create a PDF var renderer = new ChromePdfRenderer(); var doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>"); // Step 2. Create a Signature. // You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader. // Read: https://helpx.adobe.com/acrobat/using/digital-ids.html var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456") { // Step 3. Optional signing options and a handwritten signature graphic SigningContact = "support@ironsoftware.com", SigningLocation = "Chicago, USA", SigningReason = "To show how to sign a PDF" }; //Step 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used doc.Sign(signature); //Step 5. The PDF is not signed until saved to file, steam or byte array. doc.SaveAs("signed.pdf");
Imports IronPdf ' Step 1. Create a PDF Private renderer = New ChromePdfRenderer() Private doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>") ' Step 2. Create a Signature. ' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader. ' Read: https://helpx.adobe.com/acrobat/using/digital-ids.html Private signature = New IronPdf.Signing.PdfSignature("Iron.pfx", "123456") With { .SigningContact = "support@ironsoftware.com", .SigningLocation = "Chicago, USA", .SigningReason = "To show how to sign a PDF" } 'Step 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used doc.Sign(signature) 'Step 5. The PDF is not signed until saved to file, steam or byte array. doc.SaveAs("signed.pdf")
PDF-Anhänge
IronPDF unterstützt in vollem Umfang das Hinzufügen und Entfernen von Anhängen zu und aus Ihren PDF-Dokumenten.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-9.cs
var Renderer = new ChromePdfRenderer(); var myPdf = Renderer.RenderHtmlFileAsPdf("my-content.html"); // Here we can add an attachment with a name and byte[] var attachment1 = myPdf.Attachments.AddAttachment("attachment_1", example_attachment); // And here is an example of removing an attachment myPdf.Attachments.RemoveAttachment(attachment1); myPdf.SaveAs("my-content.pdf");
Dim Renderer = New ChromePdfRenderer() Dim myPdf = Renderer.RenderHtmlFileAsPdf("my-content.html") ' Here we can add an attachment with a name and byte[] Dim attachment1 = myPdf.Attachments.AddAttachment("attachment_1", example_attachment) ' And here is an example of removing an attachment myPdf.Attachments.RemoveAttachment(attachment1) myPdf.SaveAs("my-content.pdf")
PDFs komprimieren
IronPDF unterstützt die Komprimierung von PDF-Dateien. Eine Möglichkeit, die Größe einer PDF-Datei zu reduzieren, besteht darin, die Größe der eingebetteten Bilder im PdfDokument zu verringern. In IronPDF können wir die CompressImages
-Methode aufrufen.
Bei der Größenänderung von JPEGs gibt es bei 100 % Qualität so gut wie keine Verluste, und 1 % ist ein Bild von sehr geringer Qualität. Im Allgemeinen gelten 90 % und mehr als hohe Qualität, 80-90 % als mittlere Qualität und 70-80 % als niedrige Qualität. Eine Reduzierung auf unter 70 % führt zu einer schlechten Bildqualität, kann aber die Gesamtgröße des PdfDokuments drastisch reduzieren.
Bitte experimentieren Sie mit verschiedenen Werten, um ein Gefühl für die Bandbreite der Qualität im Verhältnis zur Dateigröße zu bekommen und so die optimale Balance für Ihre Anforderungen zu finden. Die Offensichtlichkeit der Qualitätsminderung hängt letztlich von der Art des eingegebenen Bildes ab, und einige Bilder können in ihrer Klarheit stärker beeinträchtigt sein als andere.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-10.cs
var pdf = new PdfDocument("document.pdf"); // Quality parameter can be 1-100, where 100 is 100% of original quality pdf.CompressImages(60); pdf.SaveAs("document_compressed.pdf");
Dim pdf = New PdfDocument("document.pdf") ' Quality parameter can be 1-100, where 100 is 100% of original quality pdf.CompressImages(60) pdf.SaveAs("document_compressed.pdf")
Es gibt einen zweiten optionalen Parameter, der die Bildauflösung entsprechend der sichtbaren Größe im PDF-Dokument herunterskalieren kann. Beachten Sie, dass dies bei einigen Bildkonfigurationen zu Verzerrungen führen kann:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-11.cs
var pdf = new PdfDocument("document.pdf"); pdf.CompressImages(90, true); pdf.SaveAs("document_scaled_compressed.pdf");
Dim pdf = New PdfDocument("document.pdf") pdf.CompressImages(90, True) pdf.SaveAs("document_scaled_compressed.pdf")
Bearbeiten von PDF-Inhalten
Kopf- und Fußzeilen hinzufügen
Sie können problemlos Kopf- und Fußzeilen zu Ihrer PDF-Datei hinzufügen. IronPDF verfügt über zwei verschiedene Arten von "HeaderFooters", die TextHeaderFooter
und HtmlHeaderFooter
sind. TextHeaderFooter ist besser für Kopf- und Fußzeilen geeignet, die nur Text enthalten und welche Felder zum Zusammenführen wie "{page} von {total-pages}"
verwenden möchten. HtmlHeaderFooter ist eine fortschrittliche Kopf- und Fußzeile, die mit beliebigem HTML arbeitet und sauber formatiert.
HTML-Kopfzeile und -Fußzeile
HTML-Kopf- und Fußzeilen verwenden die gerenderte Version Ihres HTML-Dokuments als Kopf- oder Fußzeile in Ihrem PDF-Dokument für ein pixelgenaues Layout.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-12.cs
var renderer = new ChromePdfRenderer(); // Build a footer using html to style the text // mergeable fields are: // {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title} renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { MaxHeight = 15, //millimeters HtmlFragment = "<center><i>{page} of {total-pages}<i></center>", DrawDividerLine = true }; // Build a header using an image asset // Note the use of BaseUrl to set a relative path to the assets renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { MaxHeight = 20, //millimeters HtmlFragment = "<img src='logo.png'>", BaseUrl = new System.Uri(@"C:\assets\images").AbsoluteUri };
Dim renderer = New ChromePdfRenderer() ' Build a footer using html to style the text ' mergeable fields are: ' {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title} renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With { .MaxHeight = 15, .HtmlFragment = "<center><i>{page} of {total-pages}<i></center>", .DrawDividerLine = True } ' Build a header using an image asset ' Note the use of BaseUrl to set a relative path to the assets renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With { .MaxHeight = 20, .HtmlFragment = "<img src='logo.png'>", .BaseUrl = (New System.Uri("C:\assets\images")).AbsoluteUri }
Für ein vollständiges und detailliertes Beispiel mit mehreren Anwendungsfällen sehen Sie sich das folgende Tutorial an: hier.
Text Kopfzeile und Fußzeile
Die grundlegende Kopf- und Fußzeile ist der TextHeaderFooter, siehe das folgende Beispiel.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-13.cs
var renderer = new ChromePdfRenderer { RenderingOptions = { FirstPageNumber = 1, // use 2 if a cover-page will be appended // Add a header to every page easily: TextHeader = { DrawDividerLine = true, CenterText = "{url}", Font = IronSoftware.Drawing.FontTypes.Helvetica, FontSize = 12 }, // Add a footer too: TextFooter = { DrawDividerLine = true, Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 10, LeftText = "{date} {time}", RightText = "{page} of {total-pages}" } } };
Dim renderer = New ChromePdfRenderer With { .RenderingOptions = { FirstPageNumber = 1, TextHeader = { DrawDividerLine = True, CenterText = "{url}", Font = IronSoftware.Drawing.FontTypes.Helvetica, FontSize = 12 }, TextFooter = { DrawDividerLine = True, Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 10, LeftText = "{date} {time}", RightText = "{page} of {total-pages}" } } }
Wir haben auch die folgenden Zusammenführungsfelder, die beim Rendern durch Werte ersetzt werden: {page}
, {total-pages}
, {url}
, {date}
, {time}
, {html-title}
, {pdf-title}
Suchen und Ersetzen von Text in einer PDF-Datei
Erstellen Sie Platzhalter in Ihren PDFs und ersetzen Sie sie programmgesteuert, oder ersetzen Sie einfach alle Instanzen einer Textphrase mit unserer ReplaceTextOnPage
-Methode.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-14.cs
// Using an existing PDF var pdf = PdfDocument.FromFile("sample.pdf"); // Parameters int pageIndex = 1; string oldText = ".NET 6"; // Old text to remove string newText = ".NET 7"; // New text to add // Replace Text on Page pdf.ReplaceTextOnPage(pageIndex, oldText, newText); // Placeholder Template Example pdf.ReplaceTextOnPage(pageIndex, "[DATE]", "01/01/2000"); // Save your new PDF pdf.SaveAs("new_sample.pdf");
' Using an existing PDF Dim pdf = PdfDocument.FromFile("sample.pdf") ' Parameters Dim pageIndex As Integer = 1 Dim oldText As String = ".NET 6" ' Old text to remove Dim newText As String = ".NET 7" ' New text to add ' Replace Text on Page pdf.ReplaceTextOnPage(pageIndex, oldText, newText) ' Placeholder Template Example pdf.ReplaceTextOnPage(pageIndex, "[DATE]", "01/01/2000") ' Save your new PDF pdf.SaveAs("new_sample.pdf")
Um das Beispiel für "Find and Replace Text" auf unserer Seite mit Codebeispielen zu sehen, besuchen Sie bitte hier
Gliederungen und Lesezeichen
Eine Gliederung oder ein "Lesezeichen" bietet eine Möglichkeit, zu wichtigen Seiten einer PDF-Datei zu navigieren. In Adobe Acrobat Reader werden diese Lesezeichen (die möglicherweise verschachtelt sind) in der linken Seitenleiste der Anwendung angezeigt. IronPDF importiert automatisch vorhandene Lesezeichen aus PDF-Dokumenten und ermöglicht das Hinzufügen, Bearbeiten und Verschachteln weiterer Lesezeichen.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-15.cs
// Create a new PDF or edit an existing document. PdfDocument pdf = PdfDocument.FromFile("existing.pdf"); // Add bookmark pdf.Bookmarks.AddBookMarkAtEnd("Author's Note", 2); pdf.Bookmarks.AddBookMarkAtEnd("Table of Contents", 3); // Store new bookmark in a variable to add nested bookmarks to var summaryBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Summary", 17); // Add a sub-bookmark within the summary var conclusionBookmark = summaryBookmark.Children.AddBookMarkAtStart("Conclusion", 18); // Add another bookmark to end of highest-level bookmark list pdf.Bookmarks.AddBookMarkAtEnd("References", 20); pdf.SaveAs("existing.pdf");
' Create a new PDF or edit an existing document. Dim pdf As PdfDocument = PdfDocument.FromFile("existing.pdf") ' Add bookmark pdf.Bookmarks.AddBookMarkAtEnd("Author's Note", 2) pdf.Bookmarks.AddBookMarkAtEnd("Table of Contents", 3) ' Store new bookmark in a variable to add nested bookmarks to Dim summaryBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Summary", 17) ' Add a sub-bookmark within the summary Dim conclusionBookmark = summaryBookmark.Children.AddBookMarkAtStart("Conclusion", 18) ' Add another bookmark to end of highest-level bookmark list pdf.Bookmarks.AddBookMarkAtEnd("References", 20) pdf.SaveAs("existing.pdf")
Um das Beispiel für Inhaltsverzeichnis und Lesezeichen auf unserer Beispielseite zu sehen, besuchen Sie bitte hier.
Hinzufügen und Bearbeiten von Kommentaren
IronPDF bietet eine Fülle von Anpassungsmöglichkeiten für PDF-Anmerkungen. Das folgende Beispiel veranschaulicht seine Möglichkeiten:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-16.cs
// create a new PDF or load and edit an existing document. var pdf = PdfDocument.FromFile("existing.pdf"); // Create a PDF annotation object var textAnnotation = new IronPdf.Annotations.TextAnnotation(PageIndex: 0) { Title = "This is the major title", Contents = "This is the long 'sticky note' comment content...", Subject = "This is a subtitle", Opacity = 0.9, Printable = false, Hidden = false, OpenByDefault = true, ReadOnly = false, Rotatable = true, }; // Add the annotation "sticky note" to a specific page and location within any new or existing PDF. pdf.Annotations.Add(textAnnotation); pdf.SaveAs("existing.pdf");
' create a new PDF or load and edit an existing document. Dim pdf = PdfDocument.FromFile("existing.pdf") ' Create a PDF annotation object Dim textAnnotation = New IronPdf.Annotations.TextAnnotation(PageIndex:= 0) With { .Title = "This is the major title", .Contents = "This is the long 'sticky note' comment content...", .Subject = "This is a subtitle", .Opacity = 0.9, .Printable = False, .Hidden = False, .OpenByDefault = True, .ReadOnly = False, .Rotatable = True } ' Add the annotation "sticky note" to a specific page and location within any new or existing PDF. pdf.Annotations.Add(textAnnotation) pdf.SaveAs("existing.pdf")
PDF-Anmerkungen ermöglichen das Hinzufügen von Kommentaren in Form von "Haftnotizen" zu PDF-Seiten. Die TextAnnotation
-Klasse ermöglicht es, Anmerkungen programmgesteuert hinzuzufügen. Zu den unterstützten erweiterten Funktionen für Textanmerkungen gehören Größenanpassung, Deckkraft, Symbole und Bearbeitung.
Hintergründe und Vordergründe hinzufügen
Mit IronPDF können wir ganz einfach 2 PDF-Dateien zusammenführen, indem wir eine als Hintergrund oder Vordergrund verwenden:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-17.cs
var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf"); pdf.AddBackgroundPdf(@"MyBackground.pdf"); pdf.AddForegroundOverlayPdfToPage(0, @"MyForeground.pdf", 0); pdf.SaveAs(@"C:\Path\To\Complete.pdf");
Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf") pdf.AddBackgroundPdf("MyBackground.pdf") pdf.AddForegroundOverlayPdfToPage(0, "MyForeground.pdf", 0) pdf.SaveAs("C:\Path\To\Complete.pdf")
Stempeln und Wasserzeichen
Die Möglichkeit, Stempel und Wasserzeichen zu erstellen, gehört zu den grundlegenden Funktionen eines jeden PDF-Editors. IronPDF verfügt über eine erstaunliche API zur Erstellung einer breiten Palette von Stempeln wie Bildstempel und HTML-Stempel. Diese haben alle eine hochgradig anpassbare Positionierung mit Hilfe von Ausrichtung und Offsets, die hier zu sehen sind:

Abstrakte Klasse Stamper
Die abstrakte Klasse Stamper
wird als Parameter für alle Stempelmethoden von IronPDF verwendet.
Für jeden Anwendungsfall gibt es viele Klassen:
TextStamper
, um Text zu stempeln - TextbeispielImageStamper
, um Bilder zu stempeln - BildbeispielHtmlStamper
, um HTML zu stempeln - HTML-BeispielBarcodeStamper
, um Barcodes zu stempeln - Barcode-BeispielBarcodeStamper
zum Stempeln von QR-Codes - QR-Code-BeispielFür Wasserzeichen siehe hier.
Um eine dieser anzuwenden, verwenden Sie eine unserer
ApplyStamp()
-Methoden. Siehe: den Abschnitt "Stempel anbringen" in diesem Tutorial.
Eigenschaften der Stamper-Klasse
abstract class Stamper └─── int : Opacity └─── int : Rotation └─── double : Scale └─── Length : HorizontalOffset └─── Length : VerticalOffset └─── Length : MinWidth └─── Length : MaxWidth └─── Length : MinHeight └─── Length : MaxHeight └─── string : Hyperlink └─── bool : IsStampBehindContent (default : false) └─── HorizontalAlignment : HorizontalAlignment │ │ Left │ │ Center (default) │ │ Right │ └─── VerticalAlignment : VerticalAlignment │ Top │ Middle (default) │ Bottom
Beispiele für Stanzen
Nachfolgend werden die einzelnen Unterklassen von Stamper anhand eines Codebeispiels vorgestellt.
Text in eine PDF-Datei stempeln
Zwei verschiedene Textstempel auf unterschiedliche Weise erstellen und beide anwenden:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-18.cs
var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>"); TextStamper stamper1 = new TextStamper { Text = "Hello World! Stamp One Here!", FontFamily = "Bungee Spice", UseGoogleFont = true, FontSize = 100, IsBold = true, IsItalic = true, VerticalAlignment = VerticalAlignment.Top }; TextStamper stamper2 = new TextStamper() { Text = "Hello World! Stamp Two Here!", FontFamily = "Bungee Spice", UseGoogleFont = true, FontSize = 30, VerticalAlignment = VerticalAlignment.Bottom }; Stamper[] stampersToApply = { stamper1, stamper2 }; pdf.ApplyMultipleStamps(stampersToApply); pdf.ApplyStamp(stamper2);
Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>") Dim stamper1 As New TextStamper With { .Text = "Hello World! Stamp One Here!", .FontFamily = "Bungee Spice", .UseGoogleFont = True, .FontSize = 100, .IsBold = True, .IsItalic = True, .VerticalAlignment = VerticalAlignment.Top } Dim stamper2 As New TextStamper() With { .Text = "Hello World! Stamp Two Here!", .FontFamily = "Bungee Spice", .UseGoogleFont = True, .FontSize = 30, .VerticalAlignment = VerticalAlignment.Bottom } Dim stampersToApply() As Stamper = { stamper1, stamper2 } pdf.ApplyMultipleStamps(stampersToApply) pdf.ApplyStamp(stamper2)
Ein Bild in eine PDF-Datei stempeln
Anwenden eines Bildstempels auf ein bestehendes PDF-Dokument auf verschiedenen Seitenkombinationen:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-19.cs
var pdf = new PdfDocument("/attachments/2022_Q1_sales.pdf"); ImageStamper logoImageStamper = new ImageStamper("/assets/logo.png"); // Apply to every page, one page, or some pages pdf.ApplyStamp(logoImageStamper); pdf.ApplyStamp(logoImageStamper, 0); pdf.ApplyStamp(logoImageStamper, new[] { 0, 3, 11 });
Dim pdf = New PdfDocument("/attachments/2022_Q1_sales.pdf") Dim logoImageStamper As New ImageStamper("/assets/logo.png") ' Apply to every page, one page, or some pages pdf.ApplyStamp(logoImageStamper) pdf.ApplyStamp(logoImageStamper, 0) pdf.ApplyStamp(logoImageStamper, { 0, 3, 11 })
HTML in eine PDF-Datei stempeln
Schreiben Sie Ihr eigenes HTML, das als Stempel verwendet werden kann:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-20.cs
var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<p>Hello World, example HTML body.</p>"); HtmlStamper stamper = new HtmlStamper($"<p>Example HTML Stamped</p><div style='width:250pt;height:250pt;background-color:red;'></div>") { HorizontalOffset = new Length(-3, MeasurementUnit.Inch), VerticalAlignment = VerticalAlignment.Bottom }; pdf.ApplyStamp(stamper);
Dim renderer = New ChromePdfRenderer() Dim pdf = renderer.RenderHtmlAsPdf("<p>Hello World, example HTML body.</p>") Dim stamper As New HtmlStamper($"<p>Example HTML Stamped</p><div style='width:250pt;height:250pt;background-color:red;'></div>") If True Then 'INSTANT VB WARNING: An assignment within expression was extracted from the following statement: 'ORIGINAL LINE: HorizontalOffset = new Length(-3, MeasurementUnit.Inch), VerticalAlignment = VerticalAlignment.Bottom New Length(-3, MeasurementUnit.Inch), VerticalAlignment = VerticalAlignment.Bottom HorizontalOffset = New Length(-3, MeasurementUnit.Inch), VerticalAlignment End If pdf.ApplyStamp(stamper)
Stempeln eines Barcodes auf eine PDF-Datei
Beispiel für das Erstellen und Stempeln eines Barcodes:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-21.cs
BarcodeStamper bcStamp = new BarcodeStamper("IronPDF", BarcodeEncoding.Code39); bcStamp.HorizontalAlignment = HorizontalAlignment.Left; bcStamp.VerticalAlignment = VerticalAlignment.Bottom; var pdf = new PdfDocument("example.pdf"); pdf.ApplyStamp(bcStamp);
Dim bcStamp As New BarcodeStamper("IronPDF", BarcodeEncoding.Code39) bcStamp.HorizontalAlignment = HorizontalAlignment.Left bcStamp.VerticalAlignment = VerticalAlignment.Bottom Dim pdf = New PdfDocument("example.pdf") pdf.ApplyStamp(bcStamp)
Stempeln eines QR-Codes auf eine PDF-Datei
Beispiel für die Erstellung und Prägung eines QR-Codes:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-22.cs
BarcodeStamper qrStamp = new BarcodeStamper("IronPDF", BarcodeEncoding.QRCode); qrStamp.Height = 50; // pixels qrStamp.Width = 50; // pixels qrStamp.HorizontalAlignment = HorizontalAlignment.Left; qrStamp.VerticalAlignment = VerticalAlignment.Bottom; var pdf = new PdfDocument("example.pdf"); pdf.ApplyStamp(qrStamp);
Dim qrStamp As New BarcodeStamper("IronPDF", BarcodeEncoding.QRCode) qrStamp.Height = 50 ' pixels qrStamp.Width = 50 ' pixels qrStamp.HorizontalAlignment = HorizontalAlignment.Left qrStamp.VerticalAlignment = VerticalAlignment.Bottom Dim pdf = New PdfDocument("example.pdf") pdf.ApplyStamp(qrStamp)
Wasserzeichen zu einer PDF-Datei hinzufügen
Wasserzeichen ist eine Art Stempel für jede Seite, der leicht mit der ApplyWatermark
-Methode angewendet werden kann:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-23.cs
var pdf = new PdfDocument("/attachments/design.pdf"); string html = "<h1> Example Title <h1/>"; int rotation = 0; int watermarkOpacity = 30; pdf.ApplyWatermark(html, rotation, watermarkOpacity);
Dim pdf = New PdfDocument("/attachments/design.pdf") Dim html As String = "<h1> Example Title <h1/>" Dim rotation As Integer = 0 Dim watermarkOpacity As Integer = 30 pdf.ApplyWatermark(html, rotation, watermarkOpacity)
Um das Watermarking-Beispiel auf unserer Code-Beispielseite zu sehen, besuchen Sie bitte hier.
Stempel auf eine PDF-Datei anwenden
Es gibt einige Überladungen der ApplyStamp-Methode, die verwendet werden können, um Ihren Stamper auf eine PDF-Datei anzuwenden.
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-24.cs
var pdf = new PdfDocument("/assets/example.pdf"); // Apply one stamp to all pages pdf.ApplyStamp(myStamper); // Apply one stamp to a specific page pdf.ApplyStamp(myStamper, 0); // Apply one stamp to specific pages pdf.ApplyStamp(myStamper, new[] { 0, 3, 5 }); // Apply a stamp array to all pages pdf.ApplyMultipleStamps(stampArray); // Apply a stamp array to a specific page pdf.ApplyMultipleStamps(stampArray, 0); // Apply a stamp array to specific pages pdf.ApplyMultipleStamps(stampArray, new[] { 0, 3, 5 }); // And some Async versions of the above await pdf.ApplyStampAsync(myStamper, 4); await pdf.ApplyMultipleStampsAsync(stampArray); // Additional Watermark apply method string html = "<h1> Example Title <h1/>"; int rotation = 0; int watermarkOpacity = 30; pdf.ApplyWatermark(html, rotation, watermarkOpacity);
Dim pdf = New PdfDocument("/assets/example.pdf") ' Apply one stamp to all pages pdf.ApplyStamp(myStamper) ' Apply one stamp to a specific page pdf.ApplyStamp(myStamper, 0) ' Apply one stamp to specific pages pdf.ApplyStamp(myStamper, { 0, 3, 5 }) ' Apply a stamp array to all pages pdf.ApplyMultipleStamps(stampArray) ' Apply a stamp array to a specific page pdf.ApplyMultipleStamps(stampArray, 0) ' Apply a stamp array to specific pages pdf.ApplyMultipleStamps(stampArray, { 0, 3, 5 }) ' And some Async versions of the above Await pdf.ApplyStampAsync(myStamper, 4) Await pdf.ApplyMultipleStampsAsync(stampArray) ' Additional Watermark apply method Dim html As String = "<h1> Example Title <h1/>" Dim rotation As Integer = 0 Dim watermarkOpacity As Integer = 30 pdf.ApplyWatermark(html, rotation, watermarkOpacity)
Länge Klasse
Die Length
-Klasse hat zwei Eigenschaften: Unit
und Value
. Nachdem Sie entschieden haben, welche Einheit aus dem MeasurementUnit
-Enum verwendet werden soll (der Standard ist ein Percentage
der Seite), wählen Sie den Value
aus, um die Länge als Vielfaches der Basiseinheit festzulegen.
Eigenschaften der Längenklasse
class Length └─── double : Value (default : 0) └─── MeasurementUnit : Unit Inch Millimeter Centimeter Percentage (default) Pixel Points
Länge Beispiele
Erstellen einer Länge
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-25.cs
new Length(value: 5, unit: MeasurementUnit.Inch); // 5 inches new Length(value: 25, unit: MeasurementUnit.Pixel);// 25px new Length(); // 0% of the page dimension because value is defaulted to zero and unit is defaulted to percentage new Length(value: 20); // 20% of the page dimension
Dim tempVar As New Length(value:= 5, unit:= MeasurementUnit.Inch) ' 5 inches Dim tempVar2 As New Length(value:= 25, unit:= MeasurementUnit.Pixel) ' 25px Dim tempVar3 As New Length() ' 0% of the page dimension because value is defaulted to zero and unit is defaulted to percentage Dim tempVar4 As New Length(value:= 20) ' 20% of the page dimension
Verwendung der Länge als Parameter
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-26.cs
HtmlStamper logoStamper = new HtmlStamper { VerticalOffset = new Length(15, MeasurementUnit.Percentage), HorizontalOffset = new Length(1, MeasurementUnit.Inch) // set other properties... };
Dim logoStamper As New HtmlStamper With { .VerticalOffset = New Length(15, MeasurementUnit.Percentage), .HorizontalOffset = New Length(1, MeasurementUnit.Inch) }
Formulare in PDFs verwenden
Formulare erstellen und bearbeiten
Verwenden Sie IronPDF, um eine PDF-Datei mit eingebetteten Formularfeldern zu erstellen:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-27.cs
// Step 1. Creating a PDF with editable forms from HTML using form and input tags const string formHtml = @" <html> <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=''> </form> </body> </html>"; // Instantiate Renderer var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.CreatePdfFormsFromHtml = true; renderer.RenderHtmlAsPdf(formHtml).SaveAs("BasicForm.pdf"); // Step 2. Reading and Writing PDF form values. var formDocument = PdfDocument.FromFile("BasicForm.pdf"); // Read the value of the "firstname" field var firstNameField = formDocument.Form.FindFormField("firstname"); // Read the value of the "lastname" field var lastNameField = formDocument.Form.FindFormField("lastname");
' Step 1. Creating a PDF with editable forms from HTML using form and input tags Const formHtml As String = " <html> <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=''> </form> </body> </html>" ' Instantiate Renderer Dim renderer = New ChromePdfRenderer() renderer.RenderingOptions.CreatePdfFormsFromHtml = True renderer.RenderHtmlAsPdf(formHtml).SaveAs("BasicForm.pdf") ' Step 2. Reading and Writing PDF form values. Dim formDocument = PdfDocument.FromFile("BasicForm.pdf") ' Read the value of the "firstname" field Dim firstNameField = formDocument.Form.FindFormField("firstname") ' Read the value of the "lastname" field Dim lastNameField = formDocument.Form.FindFormField("lastname")
Um das PDF-Formularbeispiel auf unserer Seite mit Codebeispielen zu sehen, besuchen Sie bitte hier.
Vorhandene Formulare ausfüllen
Mit IronPDF können Sie ganz einfach auf alle vorhandenen Formularfelder in einer PDF-Datei zugreifen und sie für eine erneute Speicherung ausfüllen:
:path=/static-assets/pdf/content-code-examples/tutorials/csharp-edit-pdf-complete-28.cs
var formDocument = PdfDocument.FromFile("BasicForm.pdf"); // Set and Read the value of the "firstname" field var firstNameField = formDocument.Form.FindFormField("firstname"); firstNameField.Value = "Minnie"; Console.WriteLine("FirstNameField value: {0}", firstNameField.Value); // Set and Read the value of the "lastname" field var lastNameField = formDocument.Form.FindFormField("lastname"); lastNameField.Value = "Mouse"; Console.WriteLine("LastNameField value: {0}", lastNameField.Value); formDocument.SaveAs("FilledForm.pdf");
Dim formDocument = PdfDocument.FromFile("BasicForm.pdf") ' Set and Read the value of the "firstname" field Dim firstNameField = formDocument.Form.FindFormField("firstname") firstNameField.Value = "Minnie" Console.WriteLine("FirstNameField value: {0}", firstNameField.Value) ' Set and Read the value of the "lastname" field Dim lastNameField = formDocument.Form.FindFormField("lastname") lastNameField.Value = "Mouse" Console.WriteLine("LastNameField value: {0}", lastNameField.Value) formDocument.SaveAs("FilledForm.pdf")
Um das PDF-Formularbeispiel auf unserer Seite mit Codebeispielen zu sehen, besuchen Sie bitte hier.
Schlussfolgerung
Die obige Liste von Beispielen zeigt, dass IronPDF über Schlüsselfunktionen verfügt, die bei der Bearbeitung von PDFs sofort einsatzbereit sind.
Wenn Sie eine Funktion anfordern möchten oder allgemeine Fragen zu IronPDF oder Lizenzen haben, wenden Sie sich bitte an unser Support-Team. Wir sind Ihnen gerne behilflich.