Search in sources :

Example 1 with PDFAExtensionSchema

use of org.apache.xmpbox.schema.PDFAExtensionSchema in project pdfbox by apache.

the class PdfaExtensionHelper method populateSchemaMapping.

public static void populateSchemaMapping(XMPMetadata meta) throws XmpParsingException {
    List<XMPSchema> schems = meta.getAllSchemas();
    TypeMapping tm = meta.getTypeMapping();
    StructuredType stPdfaExt = PDFAExtensionSchema.class.getAnnotation(StructuredType.class);
    for (XMPSchema xmpSchema : schems) {
        if (xmpSchema.getNamespace().equals(stPdfaExt.namespace())) {
            // ensure the prefix is the preferred one (cannot use other definition)
            if (!xmpSchema.getPrefix().equals(stPdfaExt.preferedPrefix())) {
                throw new XmpParsingException(ErrorType.InvalidPrefix, "Found invalid prefix for PDF/A extension, found '" + xmpSchema.getPrefix() + "', should be '" + stPdfaExt.preferedPrefix() + "'");
            }
            // create schema and types
            PDFAExtensionSchema pes = (PDFAExtensionSchema) xmpSchema;
            ArrayProperty sp = pes.getSchemasProperty();
            for (AbstractField af : sp.getAllProperties()) {
                if (af instanceof PDFASchemaType) {
                    populatePDFASchemaType(meta, (PDFASchemaType) af, tm);
                }
            // TODO unmanaged ?
            }
        }
    }
}
Also used : ArrayProperty(org.apache.xmpbox.type.ArrayProperty) AbstractField(org.apache.xmpbox.type.AbstractField) XMPSchema(org.apache.xmpbox.schema.XMPSchema) PDFAExtensionSchema(org.apache.xmpbox.schema.PDFAExtensionSchema) TypeMapping(org.apache.xmpbox.type.TypeMapping) PDFASchemaType(org.apache.xmpbox.type.PDFASchemaType) StructuredType(org.apache.xmpbox.type.StructuredType) AbstractStructuredType(org.apache.xmpbox.type.AbstractStructuredType) DefinedStructuredType(org.apache.xmpbox.type.DefinedStructuredType)

Example 2 with PDFAExtensionSchema

use of org.apache.xmpbox.schema.PDFAExtensionSchema in project pdfbox by apache.

the class XMPMetadata method createAndAddPDFAExtensionSchemaWithNS.

/**
 * Create and add a default PDFA Extension schema to this metadata.
 *
 * This method return the created schema to enter information.
 * This PDFAExtension is created with specified list of namespaces.
 *
 * @param namespaces Special namespaces list to use
 * @return schema added in order to work on it
 * @throws XmpSchemaException If namespaces list not contains PDF/A Extension namespace URI
 */
public PDFAExtensionSchema createAndAddPDFAExtensionSchemaWithNS(Map<String, String> namespaces) throws XmpSchemaException {
    PDFAExtensionSchema pdfAExt = new PDFAExtensionSchema(this);
    pdfAExt.setAboutAsSimple("");
    addSchema(pdfAExt);
    return pdfAExt;
}
Also used : PDFAExtensionSchema(org.apache.xmpbox.schema.PDFAExtensionSchema)

Example 3 with PDFAExtensionSchema

use of org.apache.xmpbox.schema.PDFAExtensionSchema in project pdfbox by apache.

the class XMPMetadata method createAndAddPDFAExtensionSchemaWithDefaultNS.

/**
 * Create and add a default PDFA Extension schema to this metadata.
 *
 * This method return the created schema to enter information.
 * This PDFAExtension is created with all default namespaces used in PDFAExtensionSchema.
 *
 * @return PDFAExtension schema added in order to work on it
 */
public PDFAExtensionSchema createAndAddPDFAExtensionSchemaWithDefaultNS() {
    PDFAExtensionSchema pdfAExt = new PDFAExtensionSchema(this);
    pdfAExt.setAboutAsSimple("");
    addSchema(pdfAExt);
    return pdfAExt;
}
Also used : PDFAExtensionSchema(org.apache.xmpbox.schema.PDFAExtensionSchema)

Aggregations

PDFAExtensionSchema (org.apache.xmpbox.schema.PDFAExtensionSchema)3 XMPSchema (org.apache.xmpbox.schema.XMPSchema)1 AbstractField (org.apache.xmpbox.type.AbstractField)1 AbstractStructuredType (org.apache.xmpbox.type.AbstractStructuredType)1 ArrayProperty (org.apache.xmpbox.type.ArrayProperty)1 DefinedStructuredType (org.apache.xmpbox.type.DefinedStructuredType)1 PDFASchemaType (org.apache.xmpbox.type.PDFASchemaType)1 StructuredType (org.apache.xmpbox.type.StructuredType)1 TypeMapping (org.apache.xmpbox.type.TypeMapping)1