2010-05-03 12 views
5

Próbuję użyć iTextSharp do odczytu/modyfikacji metadanych PDF. Zorientowałem się, jak to zrobić za pomocą pdfreader i pdfstamper. Zastanawiałem się, czy mogę również czytać/modyfikować dodatkowe informacje o metadanych, takie jak informacje o prawach autorskich i kilka innych w przestrzeni nazw XMP photoshop.Odczytywanie/modyfikowanie metadanych PDF za pomocą iTextSharp

Byłbym bardzo wdzięczny za wszelkie wskazówki dotyczące rozwiązania.

Dziękuję, Murugesh.

Odpowiedz

10

Możesz czytać metadane za pomocą `PdfReader '. Czytałem metadane tak:

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

Można spróbować klasę iTextSharp.text.xml.xmp.XmpWriter napisać metadanych. Nigdy nie robiłem to, ale I found this code poniżej:

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

Dzięki za odpowiedź. To działa. Mogę teraz umieścić wartości w dowolnym schemacie w XMP. Ale za każdym razem, gdy wstawiam wartość inną niż zwykłe pola metadanych (autor, tytuł, temat, słowa kluczowe), dodaje je jako pole niestandardowe, które jest objęte schematem "pdfx" oprócz schematu, w którym go wstawiam. Nie chcę, aby były one dodawane jako pola niestandardowe. Jakieś wskazówki? Dzięki, Murugesh. – muruge

+0

@muruge - Nie przepraszam, nie mam żadnych wskazówek; Nigdy nie próbowałem tego, co robisz. Nie mogłem też znaleźć wiele w przestrzeni nazw iTextSharp.text.xml.xmp. –

+1

Dzięki za odpowiedź. – muruge

5

Spróbuj przykłady w iTextSharp book istnieją przykłady na modyfikację dowolnej części pliku pdf!

+1

Dzięki za udostępnienie tego. Już skończyłem z tą aplikacją. Miejmy nadzieję, że pomoże to komuś, kto szuka odpowiedzi na to pytanie. – muruge

+0

dzięki za udostępnienie –