sales@e-iceblue.com    |    028-81705109    |    2181348176    |    冰蓝科技    |    EN-US

C# 添加、获取及删除 PDF 附件

Spire.PDF组件提供了两种将文档附加到PDF的方式。一种是通过调用PdfAttachmentCollection类的Add() 方法将文档作为文件附件添加到PDF,另一种则是将文档作为注释附加到PDF的页面中。

以下代码将对这两种方式逐一进行讲述。

添加附件

将文档作为文件附件添加到PDF

//加载PDF文档
PdfDocument pdf = new PdfDocument("Test.pdf");

//加载需要附加的文档
PdfAttachment attachment = new PdfAttachment("New.pdf");
//将文档添加到原PDF文档的附件集合中
pdf.Attachments.Add(attachment);

//保存文档
pdf.SaveToFile("Attachment1.pdf"); 

C# 添加、获取及删除PDF附件

将文档作为注释附加到PDF文档的页面

//加载PDF文档
PdfDocument doc = new PdfDocument("Test.pdf");
//给文档添加一个新页面
PdfPageBase page = doc.Pages.Add();

//添加文本到页面
PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, System.Drawing.FontStyle.Bold));
page.Canvas.DrawString("Attachments:", font1, PdfBrushes.CornflowerBlue, new Point(50, 50));

//将文档作为注释添加到页面
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 12f, System.Drawing.FontStyle.Bold));
PointF location = new PointF(52, 80);
String label = "Report.docx";
byte[] data = File.ReadAllBytes("Report.docx");
SizeF size = font2.MeasureString(label);
RectangleF bounds = new RectangleF(location, size);
page.Canvas.DrawString(label, font2, PdfBrushes.MediumPurple, bounds);
bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height);
PdfAttachmentAnnotation annotation1 = new PdfAttachmentAnnotation(bounds, "Report.docx", data);
annotation1.Color = Color.Purple;
annotation1.Flags = PdfAnnotationFlags.NoZoom;
annotation1.Icon = PdfAttachmentIcon.Graph;
annotation1.Text = "Report.docx";
(page as PdfNewPage).Annotations.Add(annotation1);

//保存文档
doc.SaveToFile("Attachment2.pdf");

C# 添加、获取及删除PDF附件


获取附件

根据附件添加方式的不同,获取附件也分为以下两种相应的方式。

获取文件附件

//加载PDF文档
PdfDocument pdf = new PdfDocument("Attachment1.pdf");
//获取文档的第一个文件附件
PdfAttachment attachment = pdf.Attachments[0];

//获取该附件的信息
Console.WriteLine("Name: {0}", attachment.FileName);
Console.WriteLine("MimeType: {0}", attachment.MimeType);
Console.WriteLine("Description: {0}", attachment.Description);
Console.WriteLine("Creation Date: {0}", attachment.CreationDate);
Console.WriteLine("Modification Date: {0}", attachment.ModificationDate);

//将附件的数据写入到新文档
File.WriteAllBytes(attachment.FileName, attachment.Data);
Console.ReadKey();

C# 添加、获取及删除PDF附件

获取注释附件

//加载PDF文档
PdfDocument pdf = new PdfDocument("Attachment2.pdf");

//实例化一个list并将文档内所有页面的Attachment annotations添加到该list
List attaches = new List();
foreach (PdfPageBase page in pdf.Pages)
{
    foreach (PdfAnnotation annotation in page.AnnotationsWidget)
    {
        attaches.Add(annotation as PdfAttachmentAnnotationWidget);
    }
}
//遍历list,将附件数据写入到新文档
for (int i = 0; i < attaches.Count; i++)
{
    File.WriteAllBytes(attaches[i].FileName, attaches[i].Data);
}

删除附件

删除文件附件

//加载PDF文档
PdfDocument pdf = new PdfDocument("Attachment1.pdf");

//删除文档的所有文件附件
for (int i = 0; i < pdf.Attachments.Count; i++)
{
    pdf.Attachments.RemoveAt(i);
}

//保存文档
pdf.SaveToFile("Remove.pdf");

删除注释附件

//加载PDF文档
PdfDocument pdf = new PdfDocument("Attachment2.pdf");

//删除文档的所有注释附件
foreach (PdfPageBase page in pdf.Pages)
{
    for (int i = 0; i < page.AnnotationsWidget.Count; i++)
    {
        PdfAnnotation annotation = page.AnnotationsWidget[i] as PdfAttachmentAnnotationWidget;
        page.AnnotationsWidget.Remove(annotation);                    
    }
}

//保存文档
pdf.SaveToFile("Result.pdf");
Spire.Doc
C# 添加 Word 超链接
C# 插入、计数、检索和删除 Word 文档变量
C# 如何在 Word 中插入分页符和分节符
C# 如何在 Word 中插入和删除文本框
C# 添加形状和形状组合到 Word 文档
C# 如何插入图片到 Word 以及提取 Word 中的图片
C# 给 Word 文档添加内容控件
如何合并 Word 文档
C# Word 文档保护
创建 Word 文档
启用 Word 修订功能,接受和拒绝修订
C# 操作 Word 批注功能
Spire.Doc 转换功能详述
使用 C# 为 Word 文档添加脚注尾注
C# 为 Word 文档添加页眉,页脚和页码
C# 为 Word 文档添加文本和图片水印
添加和获取 Word 文档摘要及属性
C# Word 查找和替换功能
C# 创建 Word 表格
使用 C# 添加 Word 域
C# 添加,替换和删除 Word 书签
C# 合并与拆分 Word 表格中的单元格
C# Word 图片替换
C# 根据分节符和分页符拆分 Word 文档
C# 给 Word 文档设置背景颜色和背景图片
C# 在 Word 中创建文本框
C# 设置纸张大小以及页边距
C# 在 Word 中插入下拉列表控件、文本控件、图片控件等
C# 在 Word 中创建项目符号列表、多级编号列表
C# 插入表格到 Word 文本框以及获取和删除 Word 文本框中的表格
C# Word 中添加和删除特殊符号
C# 创建 Word 邮件合并模板并合并文本和图片
C# 打印 Word 文档
C# Word 中添加、修改和提取 OLE
C# Word 中设置文字效果
C# Word 添加分栏、分割线
C# 在 Word 中插入上下标
C# 设置 Word 表格的格式
C# 操作 Word 表格行和列
C# 创建 Word 艺术字
C# 删除 Word 超链接
Spire.DocViewer
如何添加 Spire.DocViewer 控件到 Toolbox
Spire.XLS
C# Excel 插入和删除分页符
C# 给 Excel 工作表添加水印
C# 图表中隐藏和空单元格的设置
给 Excel 表格添加超链接
C# 复制 Excel 工作表
使用 Spire.XLS 创建 Excel 图表
C# 设置 Excel 数据验证/数据有效性
Excel 查找替换高亮显示数据
C# 显示和隐藏 Excel 工作表及工作表中的行与列
C# 添加修改及删除 Excel 批注
如何使用 C# 打印 Excel 文档
使用 C# 将 Excel 工作薄和 Excel 工作表保存为 PDF 格式
C# Excel 图片添加、提取和删除
C# Excel 文档保护
合并/取消合并 Excel 单元格
C# 创建 Excel 文件
如何设置和获取 Excel 工作薄摘要及自定义属性
C# 设置 Excel 页眉页脚
C# Excel 数据分组和取消分组
C# 创建、读取 Excel 公式
C# Excel 字体设置
C# 如何在 Excel 中设置条件格式
C# Excel 工作表和 Excel 图表保存为图片
C# Excel 冻结窗格
C# 设置 Excel 图片大小和位置
C# 给 Excel 文档设置背景颜色和背景图片
C# 设置现有 Excel 图表的数据标签样式
C# 展开和折叠 Excel 分组
C# 重命名 Excel 工作表和设置工作表标签颜色
C# 如何合并 Excel 文档
C# Excel 插入图形
C# 将 Excel 文件转换为 HTML 格式
C# 转换 CSV 到 Excel、PDF、Datatable
C# Excel 创建多级分组
C# 设置 Excel 工作表视图模式和显示比例
C# Excel 单元格锁定和取消锁定
C# Excel 导入导出数据
C# 设置 Excel 中数字格式
C# Excel 自定义数据标签
C# 设置 Excel 中边框(网格线)样式
C# Excel 插入和删除表单控件
C# 添加、修改和删除 Excel 迷你图
Spire.Presentation
C# 给 PPT 文档添加水印
Spire.Presentation 保护 PPT 文档
C# 创建 PowerPoint 文档
C# PowerPoint 文档转换成图片、PDF、SVG 等格式文件
C# 如何提取 PowerPoint 文档中的文本和图片
C# 创建、删除、操作 PowerPoint 表格
C# 如何添加、删除 PowerPoint 图形
C# 创建 PowerPoint 图表
C# Presentation 文本替换
C# 隐藏和取消隐藏幻灯片
C# 添加、编辑、提取和删除 PowerPoint 批注
C# PPT 插入和提取视频
C# PPT 添加、修改超链接
C# 创建 PowerPoint 堆积图
C# 设置和获取 PowerPoint 文档属性
C# 添加和获取 PowerPoint 备注
C# 添加或删除 PowerPoint 段落和设置段落样式
C# 幻灯片插入 SmartArt 图形
C# 设置 PPT 表格中文字的对齐方式
C# PowerPoint 添加页脚、页码
C# 更改 PPT 中文字方向
C# 打印 PowerPoint 文档
C# 给 PowerPoint 文档设置背景颜色和背景图片
C# 创建幻灯片编号列表和项目符号列表
C# 设置 PowerPoint 中文字透明度
C# PowerPoint 分离饼状图
Spire.PDF
C# 添加、获取及删除 PDF 附件
C# 给 PDF 文档添加背景颜色和背景图片
C# PDF 转 Word、Image、XPS
C# PDF 图片添加、删除和替换
C# 压缩 PDF 文档
C# 创建 PDF 文档
C# 何如提取 PDF 文档中的文本和图片
合并与拆分 PDF 文档
C# PDF 添加页眉页脚
C# 给 PDF 文档添加水印
打印 PDF 文档
C# PDF 数字签名
C# PDF 字体设置
C# 操作 FDF 和 XFDF 文件
C# 创建 PDF 表单域
C# PDF 文档保护与取消保护
C# 将 PDF 表单域设置为只读
C# 创建 PDF 表格
如何使用 C# 在 PDF 中绘制图形
C# 添加或删除 PDF 页面,调整页面顺序
C# PDF 添加注释和标记
C# 添加、修改和删除 PDF 书签
C# 如何删除 PDF 表单域
C# PDF 设置页边距和页面大小
C# PDF 查找和高亮显示文本
C# 添加和删除 PDF 图层
C# 添加、获取和删除 PDF 自定义文档属性
C# 打印 PDF 文档的多页到一页和一页到多页
C# 创建 PDF 项目符号列表和多级编号列表
C# 固定 PDF 文本框中文字的大小和颜色
C# 给 PDF 文档添加超链接
C# 用 JavaScript 设置和验证 PDF 文本域格式
C# 给 PDF 文档添加动作
C# PDF 文档加密和解密
Spire.PDFViewer
Spire.DataExport
Spire.BarCode for .NET
Licensing
如何应用 License
License Agreement
Spire.BarCode for JAVA
如何使用 Spire.Barcode for Java 生成条形码
使用 Spire.Barcode for Java 识别条形码
Spire.Email
C# 如何群发邮件
C# 如何接收和保存邮件
C# 创建、重命名、删除邮箱文件夹
C# 添加、提取、删除邮件附件