Example usage for org.apache.pdfbox.cos COSStream createOutputStream

List of usage examples for org.apache.pdfbox.cos COSStream createOutputStream

Introduction

In this page you can find the example usage for org.apache.pdfbox.cos COSStream createOutputStream.

Prototype

public OutputStream createOutputStream() throws IOException 

Source Link

Document

Returns a new OutputStream for writing stream data, using the current filters.

Usage

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);
    }
}