在处理包含大量页面的PDF文件时,如果需要在每一页添加相同的注释(如图章),直接复制图片到每一页可能会导致文件体积增大且处理时间较长。
为了优化这一过程,可以通过克隆第一页的注释对象,并将其添加到其他页面。这种方法不仅耗时短,而且能有效控制文件体积的增长。示例代码如下:
{
PDFDoc doc= new PDFDoc(@"D:\测试文件.pdf");
doc.Load(null);
PDFDictionary dict = null;
for (int i = 0; i <doc.GetPageCount(); i++)
{
using (PDFPage page=doc.GetPage(i))
{
page.StartParse(0, null, true);
//将第一页的一个注释作为来源,进行复制
if (i == 0)
{
Annot annot = page.GetAnnot(0);
//获取注释字典
dict= annot.GetDict();
}else
{
//克隆注释字典
PDFObject obj = dict.CloneObject();
PDFDictionary dictClone= obj.GetDict();
//改注释的名称
dictClone.SetAtString("Name", "stamp_" + i);
//添加注释
Annot annot= page.AddAnnot(dictClone);
}
}
}
doc.SaveAs("D:\\result.pdf", 0);
}