源文件:
pdflj.pdf (7.8 MB)
要实现如下截图:
QQ截图20190906211848.jpg (92.8 KB)
使用prevBookmarks.Insert(1, pdfOutline);可以将书签插入任何位置,但就是插入不到位置1。
一下代码复制便可使用,辛苦技术大哥了:
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("pdflj.pdf");
OutlineCollection rootBookmark = pdfDocument.Outlines;
//创建书签对象
Aspose.Pdf.OutlineItemCollection pdfOutline = new OutlineItemCollection(rootBookmark);
pdfOutline.Title = "目录";
//设定目标页面
pdfOutline.Action = new GoToAction(pdfDocument.Pages[2]);
//创建list
List <OutlineItemCollection> prevBookmarks = new List<OutlineItemCollection>();
//循环将书签存入list
foreach (OutlineItemCollection outlineItem in rootBookmark)
{
prevBookmarks.Add(outlineItem);
}
//删除现有书签。
pdfDocument.Outlines.Delete();
//向list集合指定位子插入新书签
prevBookmarks.Insert(1, pdfOutline);
//循环添加新书签
foreach (OutlineItemCollection cc in prevBookmarks)
{
pdfDocument.Outlines.Add(cc);
}
pdfDocument.Save("output.pdf");