2013-01-21 14 views
6

PDF aldım ve buna ek olarak, ilk sayfa olarak ek bir sayfa eklemek istiyorum. Bunu PDFSharp ile başarabildim, ancak sorun şu ki, orijinal PDF, korumak istediğim yer imleri içeriyor. PDFSharp kullanımı, yer imlerini siliyor gibi görünüyor veya en azından orijinal TOC'yi ek sayfa içeren yeni oluşturulmuş PDF'ye kaydetmek için herhangi bir seçenek veya komutun farkında değilim.Yer imlerini korurken mevcut pdf'ye ek sayfa nasıl eklenir? (PDFSharp vb.)

TOC'yi PDFSharp ile veya herhangi bir .NET kitaplığı ile ideal olarak ücretsiz olanları, mevcut bir PDF'ye sayfa eklememize ve yer imlerini saklamama izin verecek herhangi bir kişi nasıl koruyacağını bilen var mı? (İlk sayfanın bir sayfanın eklenmesinin sayfanın reddedilmesini geçersiz kılacağının farkındayım, bu yüzden son sayfa olarak bir sayfa eklemenin nedeni de budur.)

Herkese teşekkürler!

cevap

5

PDF dosyasının TOC değil, yer işaretlerini kullandığı ortaya çıktı. imleri ile çalışır

bir çözüm burada gösterilir:
http://forum.pdfsharp.net/viewtopic.php?p=6660#p6660

mevcut dosya, değişiklikler için açılır yeni bir sayfa dokümanın başlangıcında eklenir - ve tüm favoriler çalışmaya devam.

İşte kod snippet'ine: Bu çözüm için

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

sayesinde bir cazibe gibi çalıştı! – DotNetDeveloper

İlgili konular