2013-01-21 28 views
6

我有一個PDF,我想添加一個額外的頁面,理想情況下,作爲第一頁。我已經能夠通過PDFSharp實現這一目標,但問題是原始PDF包含書籤,我希望保留這些書籤。使用PDFSharp似乎會刪除書籤,或者至少我不知道有任何選項或命令將原始TOC與包含其他頁面的新創建的PDF保存在一起。如何在保留書籤的同時向現有pdf添加其他頁面? (PDFSharp等)

是否有人知道如何使用PDFSharp或其他任何.NET庫(理想情況下免費的)來保存TOC,這將允許我將頁面添加到現有的PDF中並保持其書籤? (我知道添加頁面作爲第一頁會使頁面參考失效,這就是爲什麼添加頁面作爲最後一頁也是好的。)

謝謝大家!

回答

5

原來,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); 
} 
+0

感謝這個解決方案,它的工作就像一個魅力! – DotNetDeveloper

相關問題