.net 如何在保留书签的同时向现有pdf添加其他页面?(PDFSharp等)

.net 如何在保留书签的同时向现有pdf添加其他页面?(PDFSharp等),.net,pdf-generation,bookmarks,pdfsharp,.net,Pdf Generation,Bookmarks,Pdfsharp,我有一个PDF,我想添加一个额外的页面,理想情况下作为第一页。我已经能够通过PDFSharp实现这一点,但问题是原始PDF包含书签,我希望保留书签。使用PDFSharp似乎会删除书签,或者至少我不知道有任何选项或命令可以将原始TOC与包含附加页面的新创建的PDF一起保存 有人知道如何使用PDFSharp或其他任何.NET库(理想情况下是免费库)来保存TOC吗?这些库允许我在现有PDF中添加页面并维护其书签?(我知道添加页面作为第一页会使页面引用无效,这就是为什么添加页面作为最后一页也是可以的。)

我有一个PDF,我想添加一个额外的页面,理想情况下作为第一页。我已经能够通过PDFSharp实现这一点,但问题是原始PDF包含书签,我希望保留书签。使用PDFSharp似乎会删除书签,或者至少我不知道有任何选项或命令可以将原始TOC与包含附加页面的新创建的PDF一起保存

有人知道如何使用PDFSharp或其他任何.NET库(理想情况下是免费库)来保存TOC吗?这些库允许我在现有PDF中添加页面并维护其书签?(我知道添加页面作为第一页会使页面引用无效,这就是为什么添加页面作为最后一页也是可以的。)


谢谢大家

事实证明,PDF文件使用的是书签,而不是TOC

此处显示了一个使用书签的解决方案:

打开现有文件进行修改,在文档开头插入一个新页面,所有书签仍然有效

下面是代码片段:

static void Main(string[] args)
{
    const string filename = "sample.pdf";
    File.Copy(Path.Combine("D:\\PDFsharp\\PDFfiles\\sample\\", filename),
      Path.Combine(Directory.GetCurrentDirectory(), filename), true);

    // Open an existing document for editing and loop through its pages
    PdfDocument document = PdfReader.Open(filename);
    var newPage = document.InsertPage(0);

    // Get an XGraphics object for drawing
    XGraphics gfx = XGraphics.FromPdfPage(newPage);

    // Create a font
    XFont font = new XFont("Times New Roman", 20, XFontStyle.BoldItalic);

    // Draw the text
    gfx.DrawString("Hello, World!", font, XBrushes.Black,
      new XRect(0, 0, newPage.Width, newPage.Height),
      XStringFormats.Center);

    document.Save(filename);
    // ...and start a viewer.
    Process.Start(filename);
}