2008-11-26 26 views
7

PDF belgesi özelliklerini programlı olarak .NET kodunu kullanarak nasıl değiştirebilirim?PDF belge özelliklerini değiştirme

PDF formatında bir dizi e-Kitap satın aldım ve maalesef yayıncılar Başlık, Yazar ve Konu özelliklerini ayarlamamıştır. Bunu bir dosyada Özellikler iletişim kutusuna erişip PDF sekmesini seçerek görebilirsiniz. PDF eBook'u bir eReader cihazında kullanmaya çalışırken bu gerçek bir acıdır.

Bunu yapmak için tam bir PDF Yazar ürünü satın almak istemem. Bu yüzden, birinin özellikleri program aracılığıyla değiştirmek için kullanabileceğim basit bir kitaplığa yönlendirebileceğini umuyorum.

Hiçbir .NET kitaplığı mevcut değilse, başka bir teknik için teşekkür ederiz.
ByteScout-PDF
iTextSharp

+0

Aynı problemi bir süre önce yaşadım. Bloguma bakın http://www.barcodeschool.com/2010/09/publishers-fix-the-metadata-in-the-pdf-file/ – cuteCAT

cevap

3

Eğer iTextSharp baktınız mı:

6

teşekkürler. İkiniz de iTextSharp'a işaret ettiğinden beri bunun için gittim ve iTextSharp'u kullanarak problemimi çözebildim ve aşağıda gösterilene benzer kod yazabildim. Fark ettiğim bir şey sonuçta elde edilen dosyanın 3,639,172'lik bir başlangıç ​​dosyasından 115,143 byte daha küçük olmasıydı, bu yüzden ya bazı bilgileri kaybediyorum ya da bu kitaplık, belgeyi oluşturmak için kullanılan orijinal üründen daha verimlidir.

diğer ilginç şey bu kütüphanede yaklaşık okurken ben :-) sorun yaşıyorum e-Kitap aynı yayınevi tarafından yayınlanan iText in Action bağlantılar görmeye devam olmasıdır

 using System.Diagnostics; 
     using iTextSharp.text.pdf; 
     using System.IO; 
     using System.Collections; 

     PdfReader pdfReader = new PdfReader(filePath); 
     using (FileStream fileStream = new FileStream(newFilePath, FileMode.Create, FileAccess.Write)) 
     { 
      string title = pdfReader.Info["Title"] as string; 
      Trace.WriteLine("Existing title: " + title); 

      PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream); 

      // The info property returns a copy of the internal HashTable 
      Hashtable newInfo = pdfReader.Info; 

      newInfo["Title"] = "New title"; 

      pdfStamper.MoreInfo = newInfo; 

      pdfReader.Close(); 
      pdfStamper.Close(); 
     } 
2

Docotic.Pdf library olabilir Bunun gibi bir görev için kullanılır.

how to set PDF document properties'u gösteren bir örnek. Yeni bir PDF belgesi için mevcut bir belgedeki özellikleri değiştirmek için sadece başka bir kurucu kullanmalıdır.

Yasal Uyarı: Bit Mucize için çalışıyorum.