How to Edit PDFs in C
Iron Software已将各类PDF编辑功能简化为易于理解的方法在IronPDF库中。 无论是添加签名、添加HTML页脚、盖上水印,还是添加注释。 IronPDF是适合您的工具,允许您编写可读代码、程序化PDF生成、轻松调试,以及无缝部署到任何支持的环境或平台。
IronPDF拥有许多编辑PDF的功能。 在这篇教程文章中,我们将逐步讲解其中的一些主要功能,并提供代码示例和解释。
通过这篇文章,您将对如何使用IronPDF在C#中编辑您的PDF有一个很好的理解。
快速入门:秒速编辑 PDF 文件
使用IronPDF在C#中轻松编辑PDF文档。 本快速指南向您展示如何向现有PDF文件添加文本戳记。只需几行代码,您就可以修改PDF并立即保存更改。 非常适合需要快速高效PDF编辑解决方案的开发人员。
目录
- 编辑文档结构
- 访问PDF DOM对象
- 保存和导出PDF文档
- 从内存加载PDF
- 导出PDF到内存
- 编辑文档属性
- 在C#中解析PDF
- 提取文本和图像
- 编辑文本和区域
- 在PDF中替换文本
- 增强PDF设计
- 添加和编辑注释
- 戳记文本和图像
- 自定义水印
- 背景和前景
- 绘制文本和位图
- 绘制线条和矩形
- 旋转文本和页面
- 转换PDF页面
编辑文档结构
访问PDF DOM对象
操作和访问PDF对象既快速又简单。 IronPDF简化了开发人员与DOM—允许开发人员程序化地访问和操作不同元素,如文本。
:path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object.cs
using IronPdf;
using System.Linq;
// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Create a PDF from a URL
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
// Access DOM Objects
var objects = pdf.Pages.First().ObjectModel;
Imports IronPdf
Imports System.Linq
' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
' Create a PDF from a URL
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironpdf.com/")
' Access DOM Objects
Private objects = pdf.Pages.First().ObjectModel
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
保存和导出文档
为了保存和导出文档,IronPDF允许用户快速将编辑后的文档PdfDocument.SaveAs保存到磁盘,同时还能导出到其他格式,如二进制数据和内存流。
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
从内存加载PDF
IronPDF完美地集成到现有的C# .NET应用程序中; 我们可以通过MemoryStream加载并创建PDF文件。
:path=/static-assets/pdf/content-code-examples/how-to/pdf-memory-stream-from-stream.cs
using IronPdf;
using System.IO;
// Read PDF file as stream
var fileByte = File.ReadAllBytes("sample.pdf");
// Instantiate PDF object from stream
PdfDocument pdf = new PdfDocument(fileByte);
Imports IronPdf
Imports System.IO
' Read PDF file as stream
Private fileByte = File.ReadAllBytes("sample.pdf")
' Instantiate PDF object from stream
Private pdf As New PdfDocument(fileByte)
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
导出PDF到内存
类似地,我们也可以通过MemoryStream对象在C# .NET中导出PDF为MemoryStream。
:path=/static-assets/pdf/content-code-examples/how-to/pdf-to-memory-stream-to-stream.cs
using IronPdf;
using System.IO;
var renderer = new ChromePdfRenderer();
// Convert the URL into PDF
PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
// Export PDF as Stream
MemoryStream pdfAsStream = pdf.Stream;
// Export PDF as Byte Array
byte[] pdfAsByte = pdf.BinaryData;
Imports IronPdf
Imports System.IO
Private renderer = New ChromePdfRenderer()
' Convert the URL into PDF
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironpdf.com/")
' Export PDF as Stream
Private pdfAsStream As MemoryStream = pdf.Stream
' Export PDF as Byte Array
Private pdfAsByte() As Byte = pdf.BinaryData
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
编辑文档文本
Parse PDFs in C
使用IronPDF从PDF中提取文本既快速又简单。 只需使用ExtractAllText方法提取每个页面的所有文本,让您轻松访问并利用文档内容。 这一强大的功能提高了生产力并简化了您的工作流程!
:path=/static-assets/pdf/content-code-examples/how-to/csharp-parse-pdf-parse-pdf.cs
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract all text from an pdf
string allText = pdf.ExtractAllText();
// Extract all text from page 1
string page1Text = pdf.ExtractTextFromPage(0);
Imports IronPdf
' Select the desired PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract all text from an pdf
Private allText As String = pdf.ExtractAllText()
' Extract all text from page 1
Private page1Text As String = pdf.ExtractTextFromPage(0)
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
提取文本和图像
使用IronPDF,您不仅仅限于提取文本——从您的PDF中提取图像也非常简单! 利用ExtractAllImages功能,您可以快速捕获所有所需的视觉元素。
:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-image.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
// Extract images
var images = pdf.ExtractAllImages();
for(int i = 0; i < images.Count; i++)
{
// Export the extracted images
images[i].SaveAs($"images/image{i}.png");
}
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
' Extract images
Private images = pdf.ExtractAllImages()
For i As Integer = 0 To images.Count - 1
' Export the extracted images
images(i).SaveAs($"images/image{i}.png")
Next i
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
编辑文本和区域
在需要通过涵盖在手掌中的强大工具来保护敏感信息的场景中, 利用RedactTextonAllPages。 利用这个功能,我们可以轻松识别和隐藏PDF中所有特定关键字的每个实例。 这是一种高效的方式,确保机密细节得到保护,同时仍允许我们放心地分享文档。
:path=/static-assets/pdf/content-code-examples/how-to/redact-text-redact-text.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'Alaric' phrase from all pages
pdf.RedactTextOnAllPages("Alaric");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'Alaric' phrase from all pages
pdf.RedactTextOnAllPages("Alaric")
pdf.SaveAs("redacted.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
在PDF中替换文本
为了增强使用IronPDF的PDF文档,您可以轻松地在整个文件中替换文本。通过使用newText。 此方法高效地更新了文档中所有oldText的实例,确保一致且专业的外观。
:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-all-page.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>");
string oldText = ".NET6";
string newText = ".NET7";
// Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText);
pdf.SaveAs("replaceText.pdf");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>")
Private oldText As String = ".NET6"
Private newText As String = ".NET7"
' Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText)
pdf.SaveAs("replaceText.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
增强PDF设计
添加和编辑注释
IronPDF为PDF注释提供了广泛的自定义选项,允许用户直接在PDF页面上添加"便签"风格的评论。 通过TextAnnotation类,可以通过编程方式添加批注,具备高级选项如尺寸、透明度、图标选择和编辑能力。 LinkAnnotation类通过相同的注释集合添加可点击的内部导航链接,如自定义目录和返回顶部按钮。
:path=/static-assets/pdf/content-code-examples/how-to/annotation-add-annotation.cs
using IronPdf;
using IronPdf.Annotations;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Annotation</h1>");
// Create a PDF annotation object on a specified page index
TextAnnotation annotation = new TextAnnotation(0)
{
Title = "This is the title",
Contents = "This is the long 'sticky note' comment content...",
X = 50,
Y = 700,
};
// Add the annotation
pdf.Annotations.Add(annotation);
pdf.SaveAs("annotation.pdf");
Imports IronPdf
Imports IronPdf.Annotations
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Annotation</h1>")
' Create a PDF annotation object on a specified page index
Dim annotation As New TextAnnotation(0) With {
.Title = "This is the title",
.Contents = "This is the long 'sticky note' comment content...",
.X = 50,
.Y = 700
}
' Add the annotation
pdf.Annotations.Add(annotation)
pdf.SaveAs("annotation.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
戳记文本和图像
IronPDF提供了广泛的自定义选项,用于将文本和图像印戳到PDF上。 在此示例中,我们将使用TextStamper类通过如下方式应用印章到PDF。
:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-stamp-text.cs
using IronPdf;
using IronPdf.Editing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");
// Create text stamper
TextStamper textStamper = new TextStamper()
{
Text = "Text Stamper!",
FontFamily = "Bungee Spice",
UseGoogleFont = true,
FontSize = 30,
IsBold = true,
IsItalic = true,
VerticalAlignment = VerticalAlignment.Top,
};
// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");
Imports IronPdf
Imports IronPdf.Editing
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")
' Create text stamper
Private textStamper As New TextStamper() With {
.Text = "Text Stamper!",
.FontFamily = "Bungee Spice",
.UseGoogleFont = True,
.FontSize = 30,
.IsBold = True,
.IsItalic = True,
.VerticalAlignment = VerticalAlignment.Top
}
' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
自定义水印
我们也可以使用ApplyWatermark方法无缝集成水印到新渲染的PDF和现有文档中。 这一功能提高了品牌认知度,确保您的材料传达出专业形象。
:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark-apply-watermark.cs
using IronPdf;
string watermarkHtml = @"
<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>
<h1>Iron Software</h1>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Watermark</h1>");
// Apply watermark
pdf.ApplyWatermark(watermarkHtml);
pdf.SaveAs("watermark.pdf");
Imports IronPdf
Private watermarkHtml As String = "
<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>
<h1>Iron Software</h1>"
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Watermark</h1>")
' Apply watermark
pdf.ApplyWatermark(watermarkHtml)
pdf.SaveAs("watermark.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
背景和前景
除了水印和印章外,我们还可以通过AddBackgroundPdf完全自定义您的PDF背景。
:path=/static-assets/pdf/content-code-examples/how-to/background-foreground-background.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Main HTML content</h1>");
// Render background
PdfDocument background = renderer.RenderHtmlAsPdf("<body style='background-color: cyan;'></body>");
// Add background
pdf.AddBackgroundPdf(background);
pdf.SaveAs("addBackground.pdf");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Main HTML content</h1>")
' Render background
Private background As PdfDocument = renderer.RenderHtmlAsPdf("<body style='background-color: cyan;'></body>")
' Add background
pdf.AddBackgroundPdf(background)
pdf.SaveAs("addBackground.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
绘制文本和位图
在PDF上绘制文本既直观又简单; 我们使用DrawText并提供必要的参数。 在此示例中,我们使用Times New Roman字体添加新短语Some text。
:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs
using IronPdf;
using IronSoftware.Drawing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
// Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 100, Color.Black, Rotation: 0);
pdf.SaveAs("drawText.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
' Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize:=12, PageIndex:=0, X:=100, Y:=100, Color.Black, Rotation:=0)
pdf.SaveAs("drawText.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
绘制线条和矩形
IronPDF也支持在PDF上绘制线条。 我们首先通过初始化两个DrawLine方法。
:path=/static-assets/pdf/content-code-examples/how-to/draw-line-and-rectangle-draw-line.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
// Configure the required parameters
int pageIndex = 0;
var start = new IronSoftware.Drawing.PointF(200,150);
var end = new IronSoftware.Drawing.PointF(1000,150);
int width = 10;
var color = new IronSoftware.Drawing.Color("#000000");
// Draw line on PDF
pdf.DrawLine(pageIndex, start, end, width, color);
pdf.SaveAs("drawLine.pdf");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
' Configure the required parameters
Private pageIndex As Integer = 0
Private start = New IronSoftware.Drawing.PointF(200,150)
Private [end] = New IronSoftware.Drawing.PointF(1000,150)
Private width As Integer = 10
Private color = New IronSoftware.Drawing.Color("#000000")
' Draw line on PDF
pdf.DrawLine(pageIndex, start, [end], width, color)
pdf.SaveAs("drawLine.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
旋转文本和页面
要旋转PDF页面,我们可以使用SetPageRotation方法来旋转特定页面。 在下面的示例中,我们只旋转了第2到第4页,保持第1页不变,以展示功能。
:path=/static-assets/pdf/content-code-examples/how-to/rotating-text-set-page-rotation.cs
using IronPdf;
using IronPdf.Rendering;
using System.Linq;
// Import PDF
PdfDocument pdf = PdfDocument.FromFile("multi-page.pdf");
// Set rotation for a single page
pdf.SetPageRotation(0, PdfPageRotation.Clockwise90);
// Set rotation for multiple pages
pdf.SetPageRotations(Enumerable.Range(1,3), PdfPageRotation.Clockwise270);
// Set rotation for the entire document
pdf.SetAllPageRotations(PdfPageRotation.Clockwise180);
pdf.SaveAs("rotated.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Imports System.Linq
' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("multi-page.pdf")
' Set rotation for a single page
pdf.SetPageRotation(0, PdfPageRotation.Clockwise90)
' Set rotation for multiple pages
pdf.SetPageRotations(Enumerable.Range(1,3), PdfPageRotation.Clockwise270)
' Set rotation for the entire document
pdf.SetAllPageRotations(PdfPageRotation.Clockwise180)
pdf.SaveAs("rotated.pdf")
有关旋转角度的枚举列表,请参阅这里。
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
转换PDF页面
除了旋转之外,我们还可以通过提供一系列参数来转换pdf页面。 在下面的示例中,我们选择了PDF的第一页,并使用Transform将第一页的内容向右移动50点向下移动,并将其缩放到其原始大小的80%。
:path=/static-assets/pdf/content-code-examples/how-to/transform-pdf-pages-transform-pdf.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("basic.pdf");
pdf.Pages[0].Transform(50, 50, 0.8, 0.8);
pdf.SaveAs("transformPage.pdf");
Imports IronPdf
Dim pdf As PdfDocument = PdfDocument.FromFile("basic.pdf")
pdf.Pages(0).Transform(50, 50, 0.8, 0.8)
pdf.SaveAs("transformPage.pdf")
如需更详细的代码片段说明并探索其附加功能,请参阅我们的综合操作指南。
结论
上面的示例列表表明,IronPDF在编辑PDF时具有即开即用的关键功能。
如果您想要提出功能请求或对IronPDF或许可有任何常见问题,请联系支持团队。 我们将非常乐意为您提供帮助。
常见问题解答
如何在 C# 中编辑 PDF 文档?
IronPDF 提供了全面的工具来编辑 C# 中的 PDF 文档。您可以操作页面,添加或删除内容,并通过使用诸如 AddPage 和 RemovePage 之类的方法高效地应用各种修改。
using C# 向 PDF 添加水印的步骤是什么?
要在 C# 中向 PDF 添加水印,请使用 IronPDF 的 ApplyWatermark 方法与 TextStamper 类一起使用,允许您自定义水印的文本、不透明度和旋转。
如何使用 C# 压缩 PDF 文件?
IronPDF 提供了 CompressAndSaveAs 方法,该方法可在单次调用中压缩嵌入的图像,并可选地剥离 PDF 结构树。使用 PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40) 即可按指定的 JPEG 质量(0–100)进行压缩并保存。 将 removeStructureTree: true 作为第三个参数传入,可进一步减小文件大小。对于内存处理工作流,请使用 CompressPdfToBytes 或 CompressPdfToStream,以字节数组或流的形式获取压缩后的输出,无需写入磁盘。
是否可以在 C# 中为 PDF 添加页眉和页脚?
是的,使用 IronPDF,您可以使用 HtmlHeaderFooter 或 TextHeaderFooter 类为 PDF 添加页眉和页脚,您可以定义 HTML 内容或文本并调整属性如高度。
可以使用什么方法将多个 PDF 合并为一个文档?
要合并多个 PDF,使用 PdfDocument.FromFile 加载每个文档,然后使用 Merge 方法将它们合并为一个文件,并可以将其保存为新文档。
如何使用 C# 在 PDF 中替换特定文本?
IronPDF 允许您通过使用方法 ReplaceTextOnPage 替换 PDF 中的文本,该方法会在页面上搜索特定文本然后程序化地替换它。
IronPDF 能否促进 PDF 表单的创建和填写?
可以,IronPDF 支持创建 PDF 表单并程序化填写现有表单字段,从而能够动态互动 PDF 文档。
如何使用 IronPDF 向 PDF 添加注释?
IronPDF 提供向 PDF 添加注释的功能。您可以通过使用注释对象将文本注释和其他类型的注释放置在所需页面上。
如何使用 C# 处理 PDF 中的数字签名?
IronPDF 支持使用数字证书 X509Certificate2 将数字签名添加到 PDF 文档中,确保文档的真实性和完整性。
是否可以在 C# 中为 PDF 页面设置背景?
可以,使用 IronPDF,通过应用图像或颜色背景来增强文档设计和展示,您可以为 PDF 页面设置背景。
IronPDF 是否兼容 .NET 10?兼容 .NET 10 能带来哪些好处?
是的,IronPDF 完全兼容 .NET 10,并充分利用了其性能和语言方面的增强功能。它在 .NET 10 项目中“开箱即用”,支持桌面、Web、MAUI 和服务等多种应用场景,并受益于数组接口方法去虚拟化和堆栈分配增强等改进。
Is IronPDF compatible with .NET 10, and what benefits does it bring?
Yes—IronPDF is fully compatible with .NET 10 and takes advantage of its performance and language enhancements. It “just works” in .NET 10 projects across desktop, web, MAUI, and services, with benefits from improvements like array interface method devirtualization and stack allocation enhancements.

