2010-05-03 30 views
5

Estoy tratando de usar iTextSharp para leer/modificar metadatos PDF. Descubrí cómo hacerlo usando pdfreader y pdfstamper. Me preguntaba si también podría leer/modificar información de metadatos adicional, como información de copyright y algunas otras dentro del espacio de nombres XMP photoshop.Leer/Modificar metadatos PDF usando iTextSharp

Agradecería mucho cualquier sugerencia a la solución.

Gracias, Murugesh.

Respuesta

10

Puede leer los metadatos usando `PdfReader '. He leído metadatos como esto:

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

Usted puede tratar de la clase iTextSharp.text.xml.xmp.XmpWriter escribir metadatos. Yo nunca lo he hecho, pero I found this code a continuación:

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

Gracias por la respuesta. Funciona. Ahora puedo poner valores en cualquier esquema dentro de XMP. Pero cada vez que inserto un valor distinto de los campos de metadatos comunes (Autor, Título, Asunto, Palabras clave), los agrega como un campo personalizado que va bajo el esquema "pdfx" además del esquema donde lo estoy insertando. No quiero que se agreguen como campos personalizados. ¿Alguna sugerencia? Gracias, Murugesh. – muruge

+0

@muruge - No lo siento, no tengo ningún puntero; Nunca he intentado lo que estás haciendo. Tampoco pude encontrar mucho en el espacio de nombres iTextSharp.text.xml.xmp. –

+1

Gracias por la respuesta. – muruge

5

probar los ejemplos en el iTextSharp book hay ejemplos sobre cómo modificar cualquier parte del archivo pdf!

+1

Gracias por compartir eso. Ya he terminado con esta aplicación. Pero con suerte, esto ayudará a alguien que está buscando una respuesta a esta pregunta. – muruge

+0

gracias por compartir –

Cuestiones relacionadas