8

PDFを持っていますが、理想的には最初のページとしてP​​DFを追加したいと思います。私はPDFSharpでこれを達成することができましたが、問題は、元のPDFにブックマークが含まれていることです。これを維持したいと思います。PDFSharpを使用するとブックマークが削除されるようです。少なくとも、追加のページを含む新しく作成されたPDFで元の目次を保存するためのオプションやコマンドを認識していません。

PDFSharpまたは他の.NETライブラリ(理想的には無料のライブラリ)を使用して目次を保持する方法を知っている人はいますか?既存のPDFにページを追加し、そのブックマークを維持することができますか?(最初のページとしてページを追加するとページ参照が無効になることを認識しています。そのため、最後のページとしてページを追加しても問題ありません。)

皆さんありがとう!

4

1 に答える 1

7

PDFファイルは目次ではなくブックマークを使用していることが判明しました。

ブックマークで機能するソリューションを次に示します: 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 に答える