如何在PDF C#中添加和删除附件

如何使用 IronPDF 在 C# 中添加和删除 PDF 附件。

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPdf 可让您使用 AddAttachment()RemoveAttachment() 等简单的 C# 方法在 PDF 文档中以编程方式添加、检索和删除文件附件,从而让您可以直接将补充文件嵌入到 PDF 中。

<! -- 待办事项:在此处添加图片 --> <! --介绍实现的示意图 --> <!--说明:说明代码概念的图表或截图 -->

PDF 文档中的附件是指嵌入在 PDF 文件本身内的文件或附加数据。 这不同于 PDF 的常规内容,包括可见的文本、图像和格式,当您查看 PDF 时可以看到。 这些附件可以是各种文件类型,包括图像、文件、电子表格或其他格式。 通常,附件用于提供用户在打开 PDF 时可以访问的附加参考资料或补充数据。 在创建综合 PDF 报告或需要将多个 PDF 文件与支持文档合并时,这种能力尤其有用。

快速入门:向 PDF 添加附件

使用 IronPDF 为您的 PDF 文档添加附件。 该快速示例演示了如何将文件嵌入为 PDF 中的附件。 加载现有的 PDF,使用 AddAttachment 方法,然后保存更新后的文档。 此过程可确保您的补充材料与 PDF 一起包含,使其可从任何 PDF 浏览器直接访问。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPDF

    PM > Install-Package IronPdf

  2. 复制并运行这段代码。

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.Attachments.AddAttachment("file.txt", System.IO.File.ReadAllBytes("file.txt"));
    pdf.SaveAs("updated.pdf");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPDF,免费试用!
    arrow pointer


如何将文件添加为 PDF 的附件? 要将文件添加为附件,首先要以 `byte[]` 的形式加载文件。 最简单的方法是使用 `File.ReadAllBytes` 方法。 将文件加载为 **字节[]**,使用 `AddAttachment` 方法将对象作为附件添加到 PDF 中: ```csharp :path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-add-attachment.cs ``` `AddAttachment` 函数将输出一个 **PDFAttachment**对象,您可以保留该对象以备将来参考,也可以在需要时删除该对象。 这种方法类似于[在 PDF 中添加图片](https://ironpdf.com/how-to/add-images-to-pdfs/)或[管理其他 PDF 资产](https://ironpdf.com/how-to/background-foreground/)。 保存 PDF 后,您可以从 PDF 查看器的工具栏中打开附件。 下图演示了在 Google Chrome 浏览器的 PDF 查看器中找到此功能的位置: ![PDF 查看器显示带有导航控件和侧边栏面板的 Hello World 文档](/static-assets/pdf/how-to/add-remove-attachments/attachment-example.png)。 在这里,您可以点击它并将附件保存到您的存储器中。

我可以为 PDF 附加哪些文件类型? IronPDF 支持将几乎任何文件类型附加到 PDF 文档。 常见的附件类型包括 - 办公文档(DOCX、XLSX、PPTX) - 图片(JPG、PNG、GIF、SVG) - 文本文件(TXT、CSV、XML) - 存档(ZIP、RAR) - 其他 PDF 文件 附件系统使用二进制数据,因此任何可以读取字节的文件都可以作为附件。 在处理特定文档类型时,您还可以考虑 IronPDF 的内置转换功能,例如 [ 将 DOCX 转换为 PDF](https://ironpdf.com/how-to/docx-to-pdf/) 或 [ 将图像转换为 PDF](https://ironpdf.com/how-to/image-to-pdf/) 。

附件在 PDF 浏览器中的哪些位置出现? 不同的 PDF 阅读器会在不同的位置显示附件: - **Adobe Acrobat**:在导航窗格中显示回形针图标 - **Chrome PDF 查看器**:点击时在左侧边栏显示附件 - **Firefox PDF 查看器**:在专用面板中显示附件 - **Microsoft Edge**:与 Chrome 浏览器类似,具有侧边栏附件视图 大多数现代 PDF 阅读器都支持附件,但不同应用程序的界面可能略有不同。

添加后 PdfAttachment 对象会发生什么变化? 当您调用 `AddAttachment()` 时,IronPDF 将创建一个包含以下内容的 **PdfAttachment** 对象: - **名称**:附件的显示名称 - **数据**:所附文件的二进制内容 - **描述**:附件的可选元数据 此对象将添加到 PDF 的内部附件集合中,并通过 `Attachments` 属性保持可访问性,直到明确删除为止。

如何从现有 PDF 中检索附件? 通过访问 **PdfDocument** 对象的 **Attachments** 属性,可以二进制数据的形式检索 PDF 中的附件。 通过二进制数据,您可以将附件导出为其各自的文件格式。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-retrieve-attachment.cs ``` 当您需要[从 PDF 中提取内容](https://ironpdf.com/how-to/extract-text-and-images/)或以编程方式处理附件文档时,这一过程尤其有用。

如何访问 PDF 中的多个附件? **Attachments** 属性返回一个集合,您可以遍历该集合或使用 LINQ 进行查询: ```csharp // Get all attachments as a list var allAttachments = pdf.Attachments.ToList(); // Filter attachments by size (e.g., files larger than 1MB) var largeAttachments = pdf.Attachments .Where(a => a.Data.Length > 1024 * 1024) .ToList(); // Find specific attachment by exact name var specificAttachment = pdf.Attachments .FirstOrDefault(a => a.Name == "report.xlsx"); ```

检索到的附件具有哪些属性? 每个 **PdfAttachment** 对象提供: - **名称**:附件的显示名称 - **数据**:作为字节数组的二进制内容 - **描述**:可选的描述元数据(如果已设置) 您可以根据自己的要求使用这些属性来识别、过滤和处理附件。

如何按名称或类型筛选附件? 由于附件是以其显示名称存储的,因此您可以使用字符串操作对其进行过滤: ```csharp // Filter by file extension (assuming names include extensions) var imageAttachments = pdf.Attachments .Where(a => a.Name.EndsWith(".jpg") || a.Name.EndsWith(".png") || a.Name.EndsWith(".gif")) .ToList(); // Filter by name pattern var reportsOnly = pdf.Attachments .Where(a => a.Name.StartsWith("Report_")) .ToList(); ```

如何删除 PDF 中的附件? 要删除附件,请使用 `RemoveAttachment` 函数。 此方法需要附件的引用,可以从 **Attachments** 属性中检索。 下面是如何使用上面保存的文件进行翻译的方法: ```csharp :path=/static-assets/pdf/content-code-examples/how-to/add-remove-attachments-remove-attachment.cs ``` 删除附件并在 PDF 查看器中打开生成的文件后,您会看到附件不再出现: ![打开附件面板的 PDF 查看器,显示 Hello World 文档和显示附件按钮](/static-assets/pdf/how-to/add-remove-attachments/removeattachment-example.png)。

当我删除附件时会发生什么? 当您删除附件时: 1.从 PDF 文件中完全删除附件数据 2.文件大小约减去所删除附件的大小 3.清理 PDF 结构中对该附件的任何引用 4.保存 PDF 后,更改将永久有效 这与其他 PDF 修改操作类似,如 [ 删除页面](https://ironpdf.com/how-to/add-copy-delete-pages-pdf/)或 [ 编辑内容](https://ironpdf.com/how-to/redact-text/)。

我能否一次删除多个附件? 是的,您可以在一次操作中删除多个附件。 下面是一个例子: ```csharp // Remove all attachments that match a pattern var attachmentsToRemove = pdf.Attachments .Where(a => a.Name.StartsWith("temp_")) .ToList(); foreach (var attachment in attachmentsToRemove) { pdf.Attachments.RemoveAttachment(attachment); } // Or remove all attachments at once while (pdf.Attachments.Count > 0) { pdf.Attachments.RemoveAttachment(pdf.Attachments.First()); } ```

如何验证附件已成功删除? 您可以通过以下几种方式验证附件的删除: ```csharp // Check the attachment count int attachmentCountBefore = pdf.Attachments.Count; pdf.Attachments.RemoveAttachment(targetAttachment); int attachmentCountAfter = pdf.Attachments.Count; // Verify the count decreased if (attachmentCountAfter < attachmentCountBefore) { Console.WriteLine("Attachment successfully removed"); } // Check if specific attachment exists bool attachmentExists = pdf.Attachments .Any(a => a.Name == "specificFile.txt"); ``` ## PDF 附件的最佳实践 在 IronPDF 中处理 PDF 附件时,请考虑以下最佳实践: 1.**文件大小管理**:注意附件大小,因为附件会直接增加 PDF 文件的大小。 2.**命名约定**:为附件使用清晰、描述性的名称,以帮助用户识别它们 3.**安全考虑因素**:处理敏感附件时,请考虑应用[IronPDF密码和权限](https://ironpdf.com/how-to/pdf-permissions-passwords/)。 4.**性能**:对于大型附件或许多文件,请考虑使用 [async 操作](https://ironpdf.com/how-to/async/)来保持应用程序的响应速度 准备好看看您还能做些什么吗? 在这里查看我们的教程页面:[组织PDF](https://ironpdf.com/tutorials/organize-pdfs-complete-tutorial/)

常见问题解答

如何用 C# 编程向 PDF 添加文件附件?

IronPDF 提供了一个简单的 AddAttachment() 方法,用于将文件嵌入到 PDF 中。首先,使用 File.ReadAllBytes() 将文件加载为字节数组,然后在 PdfDocument 对象上使用 AddAttachment 方法。该方法将文件名和字节数组作为参数。

PDF 文件可以附加哪些类型的文件?

IronPDF 允许您为 PDF 附加各种类型的文件,包括图片、文档、电子表格和其他格式。这些附件直接嵌入到 PDF 文件中,并可通过任何标准 PDF 浏览器的附件面板进行访问。

如何加载现有 PDF 文件以添加附件?

您可以使用 IronPDF 的 PdfDocument.FromFile() 方法加载现有 PDF。加载完成后,您可以使用 Attachments 属性管理附件,包括使用 AddAttachment() 添加新附件或删除现有附件。

PDF 内容和 PDF 附件有什么区别?

PDF 内容包括您在查看 PDF 时看到的可见文本、图像和格式。附件是嵌入在 PDF 中的独立文件,不会出现在主文档视图中。使用 IronPDF,可以通过 PDF 查看器的附件面板访问附件,并将其作为补充材料。

如何删除 PDF 中的附件?

IronPDF 提供了一个 RemoveAttachment() 方法,用于以编程方式删除 PDF 中的嵌入文件。AddAttachment 函数返回一个 PdfAttachment 对象,您可以在以后的移除操作中引用该对象。

用户在哪里可以找到 PDF 浏览器中的附件?

使用 IronPDF 添加附件后,用户可以通过 PDF 查看器的工具栏访问这些附件。大多数 PDF 查看器(包括 Google Chrome 浏览器的内置查看器)都会显示一个附件图标或面板,可在其中打开或保存嵌入的文件。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
准备开始了吗?
Nuget 下载 16,685,821 | 版本: 2025.12 刚刚发布