PDFClown 查找和替换页面
PDFClown Find and replace page
使用pdfclown,
我想知道在现有 PDF 文档中查找页面并替换为另一个 PDF 文档中的页面的最佳做法。
我有两个页面的书签和页面标签。
替换页面的简单示例可以从 PageManager
cli 示例中导出:
string inputA = @"A.pdf";
string inputB = @"B.pdf";
string output = @"A-withPage1FromB-simple.pdf";
org.pdfclown.files.File fileA = new org.pdfclown.files.File(inputA);
org.pdfclown.files.File fileB = new org.pdfclown.files.File(inputB);
// replace page 0 in fileA by page 0 from fileB
Document mainDocument = fileA.Document;
Bookmarks bookmarks = mainDocument.Bookmarks;
PageManager manager = new PageManager(mainDocument);
manager.Remove(0, 1);
manager.Add(0, fileB.Document.Pages.GetSlice(0, 1));
fileA.Save(output, SerializationModeEnum.Standard);
这确实将 A.pdf 中的第一页替换为 B.pdf 中的第一页,并将结果保存为 A-withPage1FromB-simple.pdf.
不幸的是,PageManager
不会更新书签。因此,在上述代码的结果中,仍然有一个书签用于指向原来的第一页;由于此页面已不存在,因此它现在不再指向任何地方。并且指向文件 B 中第一页的书签被完全忽略。
其他文档级别,页面相关属性也不会被转移,例如。页面标签。但是,对于页面标签,第一页的原始标签在替换后仍与第一页相关联。这是由于不同类型的参考(按页码,而不是按对象)。
使用pdfclown,
我想知道在现有 PDF 文档中查找页面并替换为另一个 PDF 文档中的页面的最佳做法。
我有两个页面的书签和页面标签。
替换页面的简单示例可以从 PageManager
cli 示例中导出:
string inputA = @"A.pdf";
string inputB = @"B.pdf";
string output = @"A-withPage1FromB-simple.pdf";
org.pdfclown.files.File fileA = new org.pdfclown.files.File(inputA);
org.pdfclown.files.File fileB = new org.pdfclown.files.File(inputB);
// replace page 0 in fileA by page 0 from fileB
Document mainDocument = fileA.Document;
Bookmarks bookmarks = mainDocument.Bookmarks;
PageManager manager = new PageManager(mainDocument);
manager.Remove(0, 1);
manager.Add(0, fileB.Document.Pages.GetSlice(0, 1));
fileA.Save(output, SerializationModeEnum.Standard);
这确实将 A.pdf 中的第一页替换为 B.pdf 中的第一页,并将结果保存为 A-withPage1FromB-simple.pdf.
不幸的是,PageManager
不会更新书签。因此,在上述代码的结果中,仍然有一个书签用于指向原来的第一页;由于此页面已不存在,因此它现在不再指向任何地方。并且指向文件 B 中第一页的书签被完全忽略。
其他文档级别,页面相关属性也不会被转移,例如。页面标签。但是,对于页面标签,第一页的原始标签在替换后仍与第一页相关联。这是由于不同类型的参考(按页码,而不是按对象)。