我使用了iTextSharp开源库。
我尝试了PdfWriter和PdfStamper:
对于PdfStamper我有以下代码(代码执行后toDelegePageNumbers将是“,!4,!5”):
stamper.Outlines = bookmarks;
reader.SelectPages("1-" + reader.NumberOfPages + toDelegePageNumbers);
stamper.Outlines = bookmarks;
stamper.Close();
另外,对于PdfWriter,我使用下面的代码(w是PdfWriter):
foreach (int page in pageToKeep)
{
doc.NewPage();
w.DirectContent.AddTemplate(w.GetImportedPage(reader, page), 0, 0);
}
w.Outlines = bookmarks;
doc.Close();
在任何一种情况下,书签最初都指向新生成的pdf文件中的页面6,这是错误的,因为第4页和第5页已被删除,原始页面6应该是新文档中的第4页。
有没有办法在不进行手动页码转换的情况下保留书签?我们有很多现有的书签,只需要删除两个页面,对于简单的操作来说似乎是额外的工作。
非常感谢。