List of usage examples for org.apache.pdfbox.cos COSStream createOutputStream
public OutputStream createOutputStream() throws IOException
From source file:io.github.qwefgh90.akka.pdf.PDFUtilWrapper.java
License:Apache License
private static PDMetadata createXMPMetadata(COSStream cosStream, String title, String creator, String subject) throws BadFieldValueException, TransformerException, IOException { LOG.info("Setting XMP metadata (title, author, subject) for merged PDF"); XMPMetadata xmpMetadata = XMPMetadata.createXMPMetadata(); // PDF/A-1b properties PDFAIdentificationSchema pdfaSchema = xmpMetadata.createAndAddPFAIdentificationSchema(); pdfaSchema.setPart(1);/*from ww w .j a v a 2 s .c o m*/ pdfaSchema.setConformance("B"); // Dublin Core properties DublinCoreSchema dublinCoreSchema = xmpMetadata.createAndAddDublinCoreSchema(); dublinCoreSchema.setTitle(title); dublinCoreSchema.addCreator(creator); dublinCoreSchema.setDescription(subject); // XMP Basic properties XMPBasicSchema basicSchema = xmpMetadata.createAndAddXMPBasicSchema(); Calendar creationDate = Calendar.getInstance(); basicSchema.setCreateDate(creationDate); basicSchema.setModifyDate(creationDate); basicSchema.setMetadataDate(creationDate); basicSchema.setCreatorTool(creator); // Create and return XMP data structure in XML format ByteArrayOutputStream xmpOutputStream = null; OutputStream cosXMPStream = null; try { xmpOutputStream = new ByteArrayOutputStream(); cosXMPStream = cosStream.createOutputStream(); new XmpSerializer().serialize(xmpMetadata, xmpOutputStream, true); cosXMPStream.write(xmpOutputStream.toByteArray()); return new PDMetadata(cosStream); } finally { IOUtils.closeQuietly(xmpOutputStream); IOUtils.closeQuietly(cosXMPStream); } }
From source file:us.kagome.pdfbox.PDFMergerExample.java
License:Apache License
private PDMetadata createXMPMetadata(COSStream cosStream, String title, String creator, String subject) throws BadFieldValueException, TransformerException, IOException { LOG.info("Setting XMP metadata (title, author, subject) for merged PDF"); XMPMetadata xmpMetadata = XMPMetadata.createXMPMetadata(); // PDF/A-1b properties PDFAIdentificationSchema pdfaSchema = xmpMetadata.createAndAddPFAIdentificationSchema(); pdfaSchema.setPart(1);//from w ww . j a v a2s . c o m pdfaSchema.setConformance("B"); // Dublin Core properties DublinCoreSchema dublinCoreSchema = xmpMetadata.createAndAddDublinCoreSchema(); dublinCoreSchema.setTitle(title); dublinCoreSchema.addCreator(creator); dublinCoreSchema.setDescription(subject); // XMP Basic properties XMPBasicSchema basicSchema = xmpMetadata.createAndAddXMPBasicSchema(); Calendar creationDate = Calendar.getInstance(); basicSchema.setCreateDate(creationDate); basicSchema.setModifyDate(creationDate); basicSchema.setMetadataDate(creationDate); basicSchema.setCreatorTool(creator); // Create and return XMP data structure in XML format ByteArrayOutputStream xmpOutputStream = null; OutputStream cosXMPStream = null; try { xmpOutputStream = new ByteArrayOutputStream(); cosXMPStream = cosStream.createOutputStream(); new XmpSerializer().serialize(xmpMetadata, xmpOutputStream, true); cosXMPStream.write(xmpOutputStream.toByteArray()); return new PDMetadata(cosStream); } finally { IOUtils.closeQuietly(xmpOutputStream); IOUtils.closeQuietly(cosXMPStream); } }