Search in sources :

Example 16 with ValidationException

use of org.apache.pdfbox.preflight.exception.ValidationException in project pdfbox by apache.

the class TestSynchronizedMetadataValidation method testAllInfoUnsynchronized.

/**
 * Check the detection of unsynchronized information between Document Information dictionary and XMP
 *
 * @throws Exception
 */
@Test
public void testAllInfoUnsynchronized() throws Exception {
    // building temporary XMP metadata
    DublinCoreSchema dc = metadata.createAndAddDublinCoreSchema();
    AdobePDFSchema pdf = metadata.createAndAddAdobePDFSchema();
    XMPBasicSchema xmp = metadata.createAndAddXMPBasicSchema();
    // Writing info in XMP and Document Information dictionary
    // TITLE
    dico.setTitle("dicoTitle");
    dc.setTitle("x-default", "XMPTitle");
    // AUTHOR
    dico.setAuthor("dicoAuthor");
    dc.addCreator("XMPAuthor");
    // SUBJECT
    dico.setSubject("dicoSubj");
    dc.addSubject("XMPSubj");
    // KEYWORDS
    dico.setKeywords("DicoKeywords");
    pdf.setKeywords("XMPkeywords");
    // CREATOR
    dico.setCreator("DicoCreator");
    xmp.setCreatorTool("XMPCreator");
    // PRODUCER
    dico.setProducer("DicoProducer");
    pdf.setProducer("XMPProducer");
    // CREATION DATE
    dico.setCreationDate(Calendar.getInstance());
    GregorianCalendar XMPCreate = new GregorianCalendar(2008, 11, 05);
    xmp.setCreateDate(XMPCreate);
    // MODIFY DATE
    dico.setModificationDate(Calendar.getInstance());
    GregorianCalendar XMPModify = new GregorianCalendar(2009, 10, 15);
    xmp.setModifyDate(XMPModify);
    // Launching synchronization test
    try {
        ve = sync.validateMetadataSynchronization(doc, metadata);
        // Test unsychronized value
        Assert.assertEquals(8, ve.size());
    } catch (ValidationException e) {
        throw new Exception(e.getMessage());
    }
}
Also used : ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) XMPBasicSchema(org.apache.xmpbox.schema.XMPBasicSchema) GregorianCalendar(java.util.GregorianCalendar) DublinCoreSchema(org.apache.xmpbox.schema.DublinCoreSchema) AdobePDFSchema(org.apache.xmpbox.schema.AdobePDFSchema) IOException(java.io.IOException) ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) Test(org.junit.Test)

Example 17 with ValidationException

use of org.apache.pdfbox.preflight.exception.ValidationException in project pdfbox by apache.

the class TestSynchronizedMetadataValidation method testBadPrefixSchemas.

/**
 * Check reaction when metadata are well-formed
 *
 * @throws Exception
 */
@Test
public void testBadPrefixSchemas() throws Exception {
    title = "TITLE";
    author = "AUTHOR(S)";
    subject = "SUBJECTS";
    keywords = "KEYWORD(S)";
    creator = "CREATOR";
    producer = "PRODUCER";
    creationDate = Calendar.getInstance();
    modifyDate = Calendar.getInstance();
    // building temporary XMP metadata
    DublinCoreSchema dc = new DublinCoreSchema(metadata, "dctest");
    metadata.addSchema(dc);
    XMPBasicSchema xmp = new XMPBasicSchema(metadata, "xmptest");
    metadata.addSchema(xmp);
    AdobePDFSchema pdf = new AdobePDFSchema(metadata, "pdftest");
    metadata.addSchema(pdf);
    // Writing info in XMP and Document Information dictionary
    // TITLE
    dico.setTitle(title);
    dc.setTitle("x-default", title);
    // AUTHOR
    dico.setAuthor(author);
    dc.addCreator(author);
    // SUBJECT
    dico.setSubject(subject);
    dc.addDescription("x-default", subject);
    // KEYWORDS
    dico.setKeywords(keywords);
    pdf.setKeywords(keywords);
    // CREATOR
    dico.setCreator(creator);
    xmp.setCreatorTool(creator);
    // PRODUCER
    dico.setProducer(producer);
    pdf.setProducer(producer);
    // CREATION DATE
    dico.setCreationDate(creationDate);
    xmp.setCreateDate(creationDate);
    // MODIFY DATE
    dico.setModificationDate(modifyDate);
    xmp.setModifyDate(modifyDate);
    // Launching synchronization test
    try {
        ve = sync.validateMetadataSynchronization(doc, metadata);
        for (ValidationError valid : ve) {
            Assert.assertEquals(PreflightConstants.ERROR_METADATA_WRONG_NS_PREFIX, valid.getErrorCode());
        }
    } catch (ValidationException e) {
        throw new Exception(e.getMessage());
    }
}
Also used : ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) XMPBasicSchema(org.apache.xmpbox.schema.XMPBasicSchema) ValidationError(org.apache.pdfbox.preflight.ValidationResult.ValidationError) DublinCoreSchema(org.apache.xmpbox.schema.DublinCoreSchema) AdobePDFSchema(org.apache.xmpbox.schema.AdobePDFSchema) IOException(java.io.IOException) ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) Test(org.junit.Test)

Example 18 with ValidationException

use of org.apache.pdfbox.preflight.exception.ValidationException in project pdfbox by apache.

the class TestSynchronizedMetadataValidation method testNullArrayValue.

/**
 * Check detection of a null value in array (for Subject and author properties)
 *
 * @throws Exception
 */
@Test(expected = IllegalArgumentException.class)
public void testNullArrayValue() throws Exception {
    // building temporary XMP metadata
    DublinCoreSchema dc = metadata.createAndAddDublinCoreSchema();
    // AUTHOR
    dico.setAuthor("dicoAuthor");
    dc.addCreator(null);
    // SUBJECT
    dico.setSubject("dicoSubj");
    dc.addSubject(null);
    // Launching synchronization test
    try {
        ve = sync.validateMetadataSynchronization(doc, metadata);
        // Test unsychronized value
        Assert.assertEquals(2, ve.size());
    } catch (ValidationException e) {
        throw new Exception(e.getMessage());
    }
}
Also used : ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) DublinCoreSchema(org.apache.xmpbox.schema.DublinCoreSchema) IOException(java.io.IOException) ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) Test(org.junit.Test)

Example 19 with ValidationException

use of org.apache.pdfbox.preflight.exception.ValidationException in project pdfbox by apache.

the class TestSynchronizedMetadataValidation method testEmptyXMP.

/**
 * Check the detection of a completely empty XMP document (without any schemas)
 *
 * @throws Exception
 */
@Test
public void testEmptyXMP() throws Exception {
    title = "TITLE";
    author = "AUTHOR(S)";
    subject = "SUBJECTS";
    keywords = "KEYWORD(S)";
    creator = "CREATOR";
    producer = "PRODUCER";
    creationDate = Calendar.getInstance();
    modifyDate = Calendar.getInstance();
    // Writing info in Document Information dictionary
    // TITLE
    dico.setTitle(title);
    // AUTHOR
    dico.setAuthor(author);
    // SUBJECT
    dico.setSubject(subject);
    // KEYWORDS
    dico.setKeywords(keywords);
    // CREATOR
    dico.setCreator(creator);
    // PRODUCER
    dico.setProducer(producer);
    // CREATION DATE
    dico.setCreationDate(creationDate);
    // MODIFY DATE
    dico.setModificationDate(modifyDate);
    try {
        ve = sync.validateMetadataSynchronization(doc, metadata);
        // Test Detection of an Empty XMP (without any schemas)
        for (ValidationError valid : ve) {
            Assert.assertEquals(PreflightConstants.ERROR_METADATA_MISMATCH, valid.getErrorCode());
        }
    } catch (ValidationException e) {
        throw new Exception(e.getMessage());
    }
}
Also used : ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) ValidationError(org.apache.pdfbox.preflight.ValidationResult.ValidationError) IOException(java.io.IOException) ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) Test(org.junit.Test)

Example 20 with ValidationException

use of org.apache.pdfbox.preflight.exception.ValidationException in project pdfbox by apache.

the class ExtGStateValidationProcess method extractExtGStateDictionaries.

/**
 * Create a list of ExtGState dictionaries using the given Resource dictionary and the COSDocument.
 *
 * @param context the context which contains the Resource dictionary.
 * @param egsEntry a resource COSDictionary.
 * @return the list of ExtGState dictionaries.
 * @throws ValidationException thrown if a the Extended Graphic State isn't valid.
 */
public List<COSDictionary> extractExtGStateDictionaries(PreflightContext context, COSDictionary egsEntry) throws ValidationException {
    List<COSDictionary> listOfExtGState = new ArrayList<>(0);
    COSDocument cosDocument = context.getDocument().getDocument();
    COSDictionary extGStates = COSUtils.getAsDictionary(egsEntry, cosDocument);
    if (extGStates != null) {
        for (Object object : extGStates.keySet()) {
            COSName key = (COSName) object;
            if (key.getName().matches(TRANPARENCY_DICTIONARY_KEY_EXTGSTATE_ENTRY_REGEX)) {
                COSBase gsBase = extGStates.getItem(key);
                COSDictionary gsDict = COSUtils.getAsDictionary(gsBase, cosDocument);
                if (gsDict == null) {
                    throw new ValidationException("The Extended Graphics State dictionary is invalid");
                }
                listOfExtGState.add(gsDict);
            }
        }
    }
    return listOfExtGState;
}
Also used : ValidationException(org.apache.pdfbox.preflight.exception.ValidationException) COSDictionary(org.apache.pdfbox.cos.COSDictionary) COSName(org.apache.pdfbox.cos.COSName) ArrayList(java.util.ArrayList) COSDocument(org.apache.pdfbox.cos.COSDocument) COSBase(org.apache.pdfbox.cos.COSBase) COSObject(org.apache.pdfbox.cos.COSObject)

Aggregations

ValidationException (org.apache.pdfbox.preflight.exception.ValidationException)21 IOException (java.io.IOException)13 Test (org.junit.Test)11 ValidationError (org.apache.pdfbox.preflight.ValidationResult.ValidationError)8 DublinCoreSchema (org.apache.xmpbox.schema.DublinCoreSchema)7 AdobePDFSchema (org.apache.xmpbox.schema.AdobePDFSchema)6 XMPBasicSchema (org.apache.xmpbox.schema.XMPBasicSchema)6 PreflightDocument (org.apache.pdfbox.preflight.PreflightDocument)4 InputStream (java.io.InputStream)3 COSObject (org.apache.pdfbox.cos.COSObject)3 ValidationResult (org.apache.pdfbox.preflight.ValidationResult)3 ArrayList (java.util.ArrayList)2 GregorianCalendar (java.util.GregorianCalendar)2 COSDictionary (org.apache.pdfbox.cos.COSDictionary)2 COSDocument (org.apache.pdfbox.cos.COSDocument)2 COSObjectKey (org.apache.pdfbox.cos.COSObjectKey)2 COSStream (org.apache.pdfbox.cos.COSStream)2 PreflightParser (org.apache.pdfbox.preflight.parser.PreflightParser)2 ICC_Profile (java.awt.color.ICC_Profile)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1