8

我有一个 PDF,我想在其中添加一个附加页面,最好是作为第一页。我已经能够使用 PDFSharp 实现这一点,但问题是原始 PDF 包含我想维护的书签。使用 PDFSharp 似乎删除了书签,或者至少我不知道有任何选项或命令可以将原始 TOC 与包含附加页面的新创建的 PDF 一起保存。

有人知道如何将 TOC 与 PDFSharp 或任何其他 .NET 库(最好是免费的库)一起保存,这将允许我向现有 PDF 添加页面并维护其书签?(我知道添加一个页面作为第一页会使页面引用无效,这就是为什么添加一个页面作为最后一页也可以。)

谢谢大家!

4

1 回答 1

7

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

此处显示了适用于书签的解决方案:http:
//forum.pdfsharp.net/viewtopic.php?p=6660#p6660

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

这是代码片段:

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);
}
于 2013-01-23T10:36:55.963 回答