Я пытаюсь создать оглавление, используя MigraDoc и PDFsharp, и я подошел очень близко, но проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что ссылки на оглавлении ведут меня на самую первую страницуPDF.Я пытаюсь связать их с соответствующими страницами.Закладки PDFSharp работают нормально, но при попытке создать оглавление на основе объединенного PDF он не работает.
static void TableOfContents(PdfDocument document)
{
// Puts the Table of contents on the second page
PdfPage page = document.Pages[1];
XGraphics gfx = XGraphics.FromPdfPage(page);
gfx.MUH = PdfFontEncoding.Unicode;
// Create MigraDoc document + Setup styles
Document doc = new Document();
Styles.DefineStyles(doc);
// Add header
Section section = doc.AddSection();
Paragraph paragraph = section.AddParagraph("Table of Contents");
paragraph.Format.Font.Size = 14;
paragraph.Format.Font.Bold = true;
paragraph.Format.SpaceAfter = 24;
paragraph.Format.OutlineLevel = OutlineLevel.Level1;
// Add links - these are the PdfSharp outlines/bookmarks
// added previously when concatinating the pages
foreach (var bookmark in document.Outlines)
{
paragraph = section.AddParagraph();
paragraph.Style = "TOC";
paragraph.AddBookmark(bookmark.Title);
Hyperlink hyperlink = paragraph.AddHyperlink(bookmark.Title);
hyperlink.AddText($"{bookmark.Title}\t");
hyperlink.AddPageRefField(bookmark.Title);
}
// Render document
DocumentRenderer docRenderer = new DocumentRenderer(doc);
docRenderer.PrepareDocument();
docRenderer.RenderPage(gfx, 1);
gfx.Dispose();
}
В идеале я хочу, чтобы он возвращал имя файла (что он делает) и номер страницы (это только возврат первой страницы).Это то, что он выводит в данный момент.
Содержаниеимя файла здесь ......................... 1имя файла здесь ......................... 1имя файла здесь ......................... 1имя файла здесь ......................... 1