IronPDF 操作指南 PDF DOM 对象 如何用 C# 访问所有 PDF DOM 对象 Curtis Chau 已更新:2026年2月18日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 要在C#中访问PDF DOM对象,请使用IronPDF的ObjectModel属性,该属性提供对PDF文档内文本、图像和路径对象的编程访问,允许您直接读取、修改、翻译、缩放和移除元素。 快速入门:使用 IronPDF 访问和更新 PDF DOM 元素 开始使用 IronPDF 的 DOM 访问功能操作 PDF 文档。 本指南介绍了如何访问 PDF DOM、选择页面和修改文本对象。 加载 PDF,访问所需页面,只需几行代码即可更新内容。 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf PM > Install-Package IronPdf 复制并运行这段代码。 var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel; 部署到您的生产环境中进行测试 通过免费试用立即在您的项目中开始使用IronPDF Free 30 Day Trial ### 最小工作流程(5 个步骤) 下载 C# 库以访问 PDF DOM 对象。 导入或渲染目标 PDF 文档 访问 PDF 的页面集合并选择所需页面 使用 **ObjectModel** 属性查看 DOM 对象并与之交互 保存或导出修改后的 PDF 文档 如何访问 PDF 中的 DOM 对象? PdfPage对象访问。 首先,导入目标PDF并访问其Pages属性。 从那里,选择任何页面以访问ObjectModel属性。 这可以实现与 PDF 内容的程序化交互,类似于处理 HTML DOM 元素。 在处理 PDF DOM 对象时,您需要访问 PDF 文档的底层结构。 这包括文本元素、图像、矢量图形(paths)和其他构成PDF视觉表现的内容。 IronPDF 提供了一种面向对象的 PDF 操作方法,可与 C# 应用程序集成。 :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; $vbLabelText $csharpLabel TextObject。 每个对象都包含有关其页面索引、边界框、比例和翻译的信息。 这些信息可以修改。 对于渲染选项,您可以自定义这些对象的显示方式。 在使用自定义边距时,理解对象定位非常重要。 <ImageObject>: Height:图像的高度 Width:图像的宽度 ExportBytesAsJpg:将图像导出为JPG字节数组的方法 <PathObject>: FillColor:路径的填充颜色 StrokeColor:路径的描边颜色 Points:定义路径的点集合 <TextObject>: Color:文字的颜色 Contents:实际的文本内容 每种对象类型都提供了针对其内容类型的方法和属性。 当您需要提取文本和图像或修改特定内容时,这些对象可提供细粒度的控制。 这在使用 IronPDF 表单时非常有用,因为您需要以编程方式操作表单字段。 如何检索字形信息和边界框? 在使用自定义字体指定精确字形时,检索边界框和字形信息至关重要。 当在现有 PDF 上绘制文本和位图时,IronPDF 提供的这些信息可实现像素完美定位。 从ObjectModel。 然后访问TextObjects集合。 调用GetGlyphInfo方法以检索字形和边界框信息。 :path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-retrieve-glyph.cs using IronPdf; using System.Linq; PdfDocument pdf = PdfDocument.FromFile("invoice.pdf"); var glyph = pdf.Pages.First().ObjectModel.TextObjects.First().GetGlyphInfo(); $vbLabelText $csharpLabel 字形信息包括定位数据、字体度量以及用于高级 PDF 操作的特定字符详细信息。 这样就可以创建处理复杂排版和布局要求的 PDF 处理应用程序。 在使用 定制字体时,这种字形级访问可确保跨系统的准确呈现。 如何翻译 PDF 对象? 通过重新定位文本或图像等元素来调整 PDF 布局。 通过更改对象的Translate属性来移动对象。 该功能是 IronPDF 的PDF 转换功能的一部分。 下面的示例使用 CSS Flexbox 将 HTML 渲染成居中文本。 它访问第一个PointF来翻译它。 这将文本向右移动 200 个点,向上移动 150 个点。有关更多示例,请访问 translate PDF objects 示例页面。 我使用什么代码来翻译对象? :path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-translate.cs using IronPdf; using System.Drawing; using System.Linq; // Setup the Renderer var renderer = new ChromePdfRenderer(); // We use CSS Flexbox to perfectly center the text vertically and horizontally. var html = @" <div style='display: flex; justify-content: center; align-items: center; font-size: 48px;'> Centered </div>"; // Render the HTML to a PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Save the original PDF to see the "before" state pdf.SaveAs("BeforeTranslate.pdf"); // Access the first text object on the first page // In this simple HTML, this will be our "Centered" text block. var textObject = pdf.Pages.First().ObjectModel.TextObjects.First(); // Apply the translation // This moves the object 200 points to the right and 150 points up from its original position. textObject.Translate = new PointF(200, 150); // Save the modified PDF to see the "after" state pdf.SaveAs("AfterTranslate.pdf"); $vbLabelText $csharpLabel 翻译结果是什么样的? 输出结果显示,"居中 "从原来的位置向右移动了 200 个点,向上移动了 150 个点。 翻译操作应保持对象的原始属性,如字体、大小和颜色,仅改变位置。 这非常适合在不影响视觉外观的情况下进行布局调整。 在重新定位动态生成的内容时,此功能可与 页眉和页脚配合使用。 如何缩放 PDF 对象? 使用Scale属性调整PDF对象的大小。 此属性充当放大倍数。 数值大于 1 会增大字号,数值在 0 到 1 之间会减小字号。 缩放对于动态布局和调整内容以适应页面尺寸至关重要。 更多示例请参见 scale PDF 对象指南。 示例渲染了包含图片的 HTML。 它访问第一个PointF给两个轴。 缩放 PDF 对象的代码是什么? :path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-scale.cs using IronPdf; using System.Linq; // Setup the Renderer var renderer = new ChromePdfRenderer(); // The image is placed in a div to give it some space on the page. string html = @"<img src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTi8LuOR6_A98euPLs-JRwoLU7Nc31nVP15rw&s'>"; // Render the HTML to a PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // Save the PDF before scaling for comparison pdf.SaveAs("BeforeScale.pdf"); // Access the first image object on the first page var image = pdf.Pages.First().ObjectModel.ImageObjects.First(); // We scale the image to 70% of its original size on both the X and Y axes. image.Scale = new System.Drawing.PointF(0.7f, 0.7f); // Save the modified PDF to see the result pdf.SaveAs("AfterScale.pdf"); $vbLabelText $csharpLabel 对 X 轴和 Y 轴独立应用不同的缩放因子,以实现非均匀缩放。 这有助于将内容融入特定的维度。 在使用自定义纸张尺寸时,缩放有助于确保内容适合页面边界。 扩展在实践中是什么样的? 输出显示图像缩小到其原始大小的 70%。 如何删除 PDF 对象? 通过访问如TextObjects的PDF DOM集合来移除对象。 在集合上调用RemoveAt,传入要删除对象的索引。 这对于编辑内容或简化文档非常有用。 了解更多信息,请访问 删除 PDF 对象示例。 代码加载 BeforeScale.pdf,并从第一页移除第一张图片。 我应该使用哪些代码来删除对象? :path=/static-assets/pdf/content-code-examples/how-to/access-pdf-dom-object-remove.cs using IronPdf; using System.Linq; // Load the PDF file we created in the Scale example PdfDocument pdf = PdfDocument.FromFile("BeforeScale.pdf"); // Access DOM Objects var objects = pdf.Pages.First().ObjectModel; // Remove first image objects.ImageObjects.RemoveAt(0); // Save the modified PDF pdf.SaveAs("removedFirstImage.pdf"); $vbLabelText $csharpLabel 当我删除多个对象时会发生什么情况? 删除后,剩余对象的索引会发生变化。 删除多个对象时,请按相反顺序删除,以保持正确的索引。 当您从敏感文档中删除文本时,这种技术会有所帮助。 如何组合多个 DOM 操作? IronPDF 的 DOM 访问可实现复杂的文档处理工作流。 为复杂的转换进行组合操作: 何时应使用联合作业? // Example of combining multiple DOM operations using IronPdf; using System.Linq; PdfDocument pdf = PdfDocument.FromFile("complex-document.pdf"); // Iterate through all pages foreach (var page in pdf.Pages) { var objects = page.ObjectModel; // Process text objects foreach (var textObj in objects.TextObjects) { // Change color of specific text if (textObj.Contents.Contains("Important")) { textObj.Color = System.Drawing.Color.Red; } } // Scale down all images by 50% foreach (var imgObj in objects.ImageObjects) { imgObj.Scale = new System.Drawing.PointF(0.5f, 0.5f); } } pdf.SaveAs("processed-document.pdf"); // Example of combining multiple DOM operations using IronPdf; using System.Linq; PdfDocument pdf = PdfDocument.FromFile("complex-document.pdf"); // Iterate through all pages foreach (var page in pdf.Pages) { var objects = page.ObjectModel; // Process text objects foreach (var textObj in objects.TextObjects) { // Change color of specific text if (textObj.Contents.Contains("Important")) { textObj.Color = System.Drawing.Color.Red; } } // Scale down all images by 50% foreach (var imgObj in objects.ImageObjects) { imgObj.Scale = new System.Drawing.PointF(0.5f, 0.5f); } } pdf.SaveAs("processed-document.pdf"); $vbLabelText $csharpLabel 哪些是组合操作的常见用例? 组合 DOM 操作适用于 1.批量文档处理:处理文档以规范格式或删除敏感内容 2.动态报告生成:利用实时数据修改 PDF 模板,同时控制布局 3.内容迁移:从 PDF 文件中提取内容并重新组织成新的布局 4.可访问性改进: 通过修改文本大小、对比度或间距来增强文档的可访问性 这些技术可以实现强大的 PDF 处理应用程序,处理复杂的修改。 关于管理文档属性,请参阅 metadata 管理指南。 DOM 访问与其他 PDF 操作方法相比有何优势? 与传统方法相比,使用 PDF DOM 有很多优势: // Example: Selective content modification based on criteria using IronPdf; using System.Linq; PdfDocument report = PdfDocument.FromFile("quarterly-report.pdf"); foreach (var page in report.Pages) { var textObjects = page.ObjectModel.TextObjects; // Highlight negative values in financial reports foreach (var text in textObjects) { if (text.Contents.StartsWith("-$") || text.Contents.Contains("Loss")) { text.Color = System.Drawing.Color.Red; } } } report.SaveAs("highlighted-report.pdf"); // Example: Selective content modification based on criteria using IronPdf; using System.Linq; PdfDocument report = PdfDocument.FromFile("quarterly-report.pdf"); foreach (var page in report.Pages) { var textObjects = page.ObjectModel.TextObjects; // Highlight negative values in financial reports foreach (var text in textObjects) { if (text.Contents.StartsWith("-$") || text.Contents.Contains("Loss")) { text.Color = System.Drawing.Color.Red; } } } report.SaveAs("highlighted-report.pdf"); $vbLabelText $csharpLabel 仅靠 HTML 到 PDF 的转换是无法实现这种细粒度控制的,因此 DOM 访问对于复杂的 PDF 处理至关重要。 准备好看看您还能做些什么吗? 点击此处查看教程页面:Edit PDFs 常见问题解答 ObjectModel 属性在 PDF 操作中的用途是什么? IronPDF 中的 ObjectModel 属性提供了对 PDF 文档中的文本、图像和路径对象的编程访问。它允许开发人员直接从 PDF DOM 中读取、修改、翻译、缩放和删除元素,类似于处理 HTML DOM 元素。 如何用 C# 访问 PDF DOM 对象? 要使用 IronPDF 访问 PDF DOM 对象,首先要导入目标 PDF 文档,然后访问其 Pages 属性。从那里,选择任何页面并使用 ObjectModel 属性。例如:var objs = IronPdf.ChromePdfRenderer.RenderUrlAsPdf("https://example.com").Pages.First().ObjectModel; 我可以通过 PDF DOM 访问哪些类型的对象? IronPDF 的 ObjectModel 包含三种主要对象类型:ImageObject(具有高度、宽度和 ExportBytesAsJpg 等属性)、PathObject(具有填充颜色、描边颜色和点数属性)和 TextObject(具有颜色和内容属性)。每种对象都提供了针对其特定内容类型的方法。 我能否以编程方式修改 PDF 文档中的文本内容? 是的,IronPDF 允许您通过 TextObject 的 Contents 属性修改文本内容。只需几行代码,您就可以通过对象模型访问文本对象、更新其内容并保存修改后的 PDF 文档。 如何从 PDF 文档中导出图像? IronPDF 的 ImageObject 提供了 ExportBytesAsJpg 方法,可将图像导出为 JPG 字节数组。通过 ObjectModel 属性访问图像,并使用该方法以编程方式提取图像数据。 每个 DOM 对象的位置有哪些信息? IronPDF 对象模型(ObjectModel)中的每个对象都包含有关其页面索引、边界框坐标、缩放和平移的信息。可以读取和修改这些定位数据,以重新定位或转换 PDF 中的元素。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布 免费试用 免费 NuGet 下载 总下载量:17,803,474 查看许可证 还在滚动吗? 想快速获得证据? PM > Install-Package IronPdf 运行示例看着你的HTML代码变成PDF文件。 免费 NuGet 下载 总下载量:17,803,474 查看许可证