Merge document page by page and then copy bookmarks. The new Bookmark location is shifted / misplaced.
Function used to copy bookmark.
- Code: Select all
// doc - new document
// odocbooks - new document bookmarks
// offset - Page Offset
// books - bookmark to copy
private static void CopyBookmark(PdfDocument doc, PdfBookmarkCollection odocbooks,int offset, PdfBookmarkCollection books)
{
foreach (PdfBookmark _cbook in books)
{
int _cpos = _cbook.Destination.Page.Document.Pages.IndexOf(_cbook.Destination.Page);
PdfBookmark _book = odocbooks.Add(_cbook.Title);
PdfDestination _destination = new PdfDestination(doc.Pages[_cpos + offset], _cbook.Destination.Location);
_book.DisplayStyle = _cbook.DisplayStyle;
//_book.Action = new PdfGoToAction(_destination);
_book.Destination = _destination;
_book.Destination.Mode = _cbook.Destination.Mode;
_book.Color = _cbook.Color;
if (_cbook.Count > 0)
{
CopyBookmark(doc,_book, offset, _cbook);
}
}
}
Thanks,
JD