PDFClown查找和替换页面

时间:2017-11-20 17:49:57

标签: c# pdfclown

使用pdfclown,

我想知道在现有PDF文档中查找页面的最佳做法,并用另一个PDF文档中的页面替换。

我有两个页面的书签和页面标签。

1 个答案:

答案 0 :(得分:0)

可以从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);

这确实取代了B.pdf中第一页的A.pdf中的第一页,并将结果保存为A-withPage1FromB-simple.pdf。

不幸的是,PageManager不会更新书签。因此,在上面的代码的结果中,仍然存在用于指向原始第一页的书签;由于此页面不存在,现在它已经无处可寻。并且完全忽略了指向fileB中第一页的书签。

其他文档级别,与页面相关的属性也不会被转移,例如页面标签。但是,在页面标签的情况下,第一页的原始标签在更换后仍与第一页相关联。这是由于不同类型的引用(按页码而不是按对象)。