2010-05-03 112 views
5

我正在嘗試使用iTextSharp讀取/修改PDF元數據。我想出瞭如何使用pdfreader和pdfstamper來做到這一點。我想知道我是否也可以讀取/修改XMP photoshop命名空間中的其他元數據信息,如版權信息和其他一些信息。使用iTextSharp讀取/修改PDF元數據

我會非常感謝任何解決方案的指針。

謝謝, Murugesh。

回答

10

您可以使用`PdfReader'讀取元數據。我讀過這樣的元數據:

PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf"); 
string s = reader.Info["Author"]; 

您可以嘗試使用iTextSharp.text.xml.xmp.XmpWriter類來編寫元數據。我從來沒有做過,但低於I found this code

PdfReader reader = new PdfReader("HelloWorldNoMetadata.pdf"); 
PdfStamper stamper = new PdfStamper(reader, 
new FileOutputStream("HelloWorldStampedMetadata.pdf")); 
HashMap info = reader.getInfo(); 
info.put("Author", "Bruno Lowagie"); 
info.put("Title", "Hello World stamped"); 
stamper.setMoreInfo(info); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
XmpWriter xmp = new XmpWriter(baos, info); 
xmp.close(); 
stamper.setXmpMetadata(baos.toByteArray()); 
stamper.close(); 
+0

感謝您的回覆。有用。我現在可以將值放入XMP中的任何模式。但是,只要插入除公共元數據字段(作者,標題,主題,關鍵字)以外的其他值,它就會將它們添加爲自定義字段,該字段除了插入它的模式之外,還將位於「pdfx」模式下。我不希望他們被添加爲自定義字段。任何指針? 謝謝, Murugesh。 – muruge 2010-05-06 01:55:01

+0

@muruge - 沒有抱歉,我沒有任何指示;我從來沒有嘗試過你在做什麼。我也無法在iTextSharp.text.xml.xmp命名空間上找到太多內容。 – 2010-05-06 06:13:35

+1

感謝您的回覆。 – muruge 2010-05-06 20:59:20

5

嘗試在iTextSharp book的例子還有關於修改PDF文件的任何部分的例子!

+1

感謝分享。我已經完成了這個應用程序。但希望這能幫助那些正在尋找這個問題的答案的人。 – muruge 2011-03-02 15:33:05

+0

感謝分享 – 2013-06-21 10:10:19