para headerfooter examples example ejemplos pdf metadata itext

headerfooter - itext pdf javascript



Obtener y establecer metadatos para el documento pdf de itext (1)

Tengo un objeto de Document iText y quiero escribir algunos metadatos en él o leer de él.
¿Cómo puedo hacer eso?

Imagine que el documento se pasa a un método como:

public void prePreccess(Object document) { Document pdfDocument = ((Document) document); //What to do here with pdfDocument? }


¿Quieres llenar el diccionario de información de un PDF? Eso se explica en el ejemplo MetadataPdf :

// step 1 Document document = new Document(); // step 2 PdfWriter.getInstance(document, new FileOutputStream(filename)); // step 3 document.addTitle("Hello World example"); document.addAuthor("Bruno Lowagie"); document.addSubject("This example shows how to add metadata"); document.addKeywords("Metadata, iText, PDF"); document.addCreator("My program using iText"); document.open(); // step 4 document.add(new Paragraph("Hello World")); // step 5 document.close();

¿Desea establecer los metadatos XMP? Esto se explica en el ejemplo de MetadataXmp :

// step 1 Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT1)); ByteArrayOutputStream os = new ByteArrayOutputStream(); XmpWriter xmp = new XmpWriter(os); XmpSchema dc = new com.itextpdf.text.xml.xmp.DublinCoreSchema(); XmpArray subject = new XmpArray(XmpArray.UNORDERED); subject.add("Hello World"); subject.add("XMP & Metadata"); subject.add("Metadata"); dc.setProperty(DublinCoreSchema.SUBJECT, subject); xmp.addRdfDescription(dc); PdfSchema pdf = new PdfSchema(); pdf.setProperty(PdfSchema.KEYWORDS, "Hello World, XMP, Metadata"); pdf.setProperty(PdfSchema.VERSION, "1.4"); xmp.addRdfDescription(pdf); xmp.close(); writer.setXmpMetadata(os.toByteArray()); // step 3 document.open(); // step 4 document.add(new Paragraph("Hello World")); // step 5 document.close();

Tenga en cuenta que este método está en desuso: recientemente hemos reemplazado la funcionalidad XMP, pero aún tenemos que escribir algunos ejemplos utilizando el nuevo código.

Quizás desee establecer el diccionario de información y crear los metadatos XMP al mismo tiempo:

// step 1 Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename)); document.addTitle("Hello World example"); document.addSubject("This example shows how to add metadata & XMP"); document.addKeywords("Metadata, iText, step 3"); document.addCreator("My program using ''iText''"); document.addAuthor("Bruno Lowagie"); writer.createXmpMetadata(); // step 3 document.open(); // step 4 document.add(new Paragraph("Hello World")); // step 5 document.close();

Si yo fuera tú, usaría esta opción porque es la solución más completa.

No debe leer los metadatos de un objeto de Document .

Puede leer la transmisión XMP desde un PDF existente como este:

public void readXmpMetadata(String src, String dest) throws IOException { PdfReader reader = new PdfReader(src); FileOutputStream fos = new FileOutputStream(dest); byte[] b = reader.getMetadata(); fos.write(b, 0, b.length); fos.flush(); fos.close(); reader.close(); }

Puede leer las entradas en el diccionario de información de esta manera:

PdfReader reader = new PdfReader(src); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); Map<String, String> info = reader.getInfo();

El objeto de info contendrá una serie de claves y valores que se almacenan como metadatos dentro del PDF.