2013-01-21 26 views
6

Tôi đã có một tệp PDF và tôi muốn thêm một trang bổ sung vào trang đó, lý tưởng là trang đầu tiên. Tôi đã có thể đạt được điều này với PDFSharp, nhưng vấn đề là PDF ban đầu chứa dấu trang, mà tôi muốn duy trì. Sử dụng PDFSharp dường như xóa các dấu trang, hoặc ít nhất tôi không biết về bất kỳ tùy chọn hoặc lệnh nào để lưu TOC gốc với tệp PDF mới được tạo có chứa trang bổ sung.Cách thêm trang bổ sung vào pdf hiện có trong khi vẫn giữ dấu trang? (PDFSharp, v.v.)

Có ai biết cách giữ TOC bằng PDFSharp hoặc có thể là bất kỳ thư viện .NET nào khác, những thư viện lý tưởng miễn phí, cho phép tôi thêm trang vào tệp PDF hiện có và duy trì dấu trang không? (Tôi biết rằng việc thêm một trang làm trang đầu tiên sẽ làm mất hiệu lực trang refs, đó là lý do tại sao việc thêm một trang là trang cuối cùng cũng ok.)

Cảm ơn tất cả!

Trả lời

5

Hóa ra tệp PDF sử dụng dấu trang chứ không phải TOC.

Một giải pháp làm việc với bookmark được hiển thị ở đây:
http://forum.pdfsharp.net/viewtopic.php?p=6660#p6660

Các tập tin hiện có được mở ra cho những thay đổi, một trang mới sẽ được chèn vào đầu tài liệu - và tất cả các dấu vẫn làm việc.

Dưới đây là đoạn mã:

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

Cảm ơn cho giải pháp này, nó làm việc như một nét duyên dáng! – DotNetDeveloper