2010-05-03 7 views
5

Я пытаюсь использовать iTextSharp для чтения/изменения PDF-метаданных. Я понял, как это сделать, используя pdfreader и pdfstamper. Мне было интересно, могу ли я читать и изменять дополнительную информацию метаданных, такую ​​как информация об авторских правах, и несколько других в пространстве имен XMP для фотошоп.Чтение/изменение метаданных PDF с помощью iTextSharp

Я бы очень признателен за любые указатели на решение.

спасибо, 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 сейчас. Но всякий раз, когда я вставляю значение, отличное от общих полей метаданных (Author, Title, Subject, Keywords), он добавляет их как настраиваемое поле, которое идет по схеме «pdfx» в дополнение к схеме, в которую я ее вставляю. Я не хочу, чтобы их добавляли в качестве настраиваемых полей. Любые указатели? Thanks, Murugesh. – muruge

+0

@muruge - Не жалко, у меня нет указателей; Я никогда не пробовал, что ты делаешь. Я также не мог найти много в пространстве имен iTextSharp.text.xml.xmp. –

+1

Спасибо за ответ. – muruge

5

Попробуйте примеры в iTextSharp book есть примеры на изменение какой-либо части файла в формате PDF!

+1

Спасибо, что поделились этим. Я уже сделал это приложение. Но, надеюсь, это поможет кому-то, кто ищет ответ на этот вопрос. – muruge

+0

благодарит за возможность совместного использования –