Search in sources :

Example 1 with XmpSerializer

use of org.apache.xmpbox.xml.XmpSerializer in project mustangproject by ZUGFeRD.

the class ZUGFeRDExporterFromA1Factory method serializeXmpMetadata.

private static byte[] serializeXmpMetadata(XMPMetadata xmpMetadata) throws TransformerException {
    XmpSerializer serializer = new XmpSerializer();
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    serializer.serialize(xmpMetadata, buffer, false);
    return buffer.toByteArray();
}
Also used : XmpSerializer(org.apache.xmpbox.xml.XmpSerializer) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 2 with XmpSerializer

use of org.apache.xmpbox.xml.XmpSerializer in project mustangproject by ZUGFeRD.

the class ZUGFeRDExporter method makeDocPDFA3compliant.

private PDDocumentCatalog makeDocPDFA3compliant(String producer, String creator, boolean attachZugferdHeaders) throws IOException, TransformerException {
    String fullProducer = producer + " (via mustangproject.org " + Version.VERSION + ")";
    PDDocumentCatalog cat = doc.getDocumentCatalog();
    PDMetadata metadata = new PDMetadata(doc);
    cat.setMetadata(metadata);
    XMPMetadata xmp = XMPMetadata.createXMPMetadata();
    PDFAIdentificationSchema pdfaid = new PDFAIdentificationSchema(xmp);
    xmp.addSchema(pdfaid);
    DublinCoreSchema dc = xmp.createAndAddDublinCoreSchema();
    dc.addCreator(creator);
    XMPBasicSchema xsb = xmp.createAndAddXMPBasicSchema();
    xsb.setCreatorTool(creator);
    xsb.setCreateDate(GregorianCalendar.getInstance());
    // PDDocumentInformation pdi=doc.getDocumentInformation();
    PDDocumentInformation pdi = new PDDocumentInformation();
    pdi.setProducer(fullProducer);
    pdi.setAuthor(creator);
    doc.setDocumentInformation(pdi);
    AdobePDFSchema pdf = xmp.createAndAddAdobePDFSchema();
    pdf.setProducer(fullProducer);
    /*
		*
		* To be on the safe side, we use level B without Markinfo because we
		* can not guarantee that the user correctly tagged the templates for
		* the PDF.
		*/
    try {
        //$NON-NLS-1$ //$NON-NLS-1$
        pdfaid.setConformance(conformanceLevel.getLetter());
    } catch (BadFieldValueException ex) {
        // supplied, however the enum enforces that the conformance level is valid.
        throw new Error(ex);
    }
    pdfaid.setPart(3);
    if (attachZugferdHeaders) {
        addZugferdXMP(xmp);
    /*
								 * this is the only line where we do something
								 * Zugferd-specific, i.e. add PDF metadata
								 * specifically for Zugferd, not generically for
								 * a embedded file
								 */
    }
    XmpSerializer serializer = new XmpSerializer();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    serializer.serialize(xmp, baos, false);
    metadata.importXMPMetadata(baos.toByteArray());
    return cat;
}
Also used : BadFieldValueException(org.apache.xmpbox.type.BadFieldValueException) XmpSerializer(org.apache.xmpbox.xml.XmpSerializer) XMPBasicSchema(org.apache.xmpbox.schema.XMPBasicSchema) PDMetadata(org.apache.pdfbox.pdmodel.common.PDMetadata) ByteArrayOutputStream(java.io.ByteArrayOutputStream) PDDocumentCatalog(org.apache.pdfbox.pdmodel.PDDocumentCatalog) PDFAIdentificationSchema(org.apache.xmpbox.schema.PDFAIdentificationSchema) XMPMetadata(org.apache.xmpbox.XMPMetadata) DublinCoreSchema(org.apache.xmpbox.schema.DublinCoreSchema) AdobePDFSchema(org.apache.xmpbox.schema.AdobePDFSchema) PDDocumentInformation(org.apache.pdfbox.pdmodel.PDDocumentInformation)

Aggregations

ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 XmpSerializer (org.apache.xmpbox.xml.XmpSerializer)2 PDDocumentCatalog (org.apache.pdfbox.pdmodel.PDDocumentCatalog)1 PDDocumentInformation (org.apache.pdfbox.pdmodel.PDDocumentInformation)1 PDMetadata (org.apache.pdfbox.pdmodel.common.PDMetadata)1 XMPMetadata (org.apache.xmpbox.XMPMetadata)1 AdobePDFSchema (org.apache.xmpbox.schema.AdobePDFSchema)1 DublinCoreSchema (org.apache.xmpbox.schema.DublinCoreSchema)1 PDFAIdentificationSchema (org.apache.xmpbox.schema.PDFAIdentificationSchema)1 XMPBasicSchema (org.apache.xmpbox.schema.XMPBasicSchema)1 BadFieldValueException (org.apache.xmpbox.type.BadFieldValueException)1