Example usage for org.apache.poi.openxml4j.opc OPCPackage open

List of usage examples for org.apache.poi.openxml4j.opc OPCPackage open

Introduction

In this page you can find the example usage for org.apache.poi.openxml4j.opc OPCPackage open.

Prototype

public static OPCPackage open(InputStream in) throws InvalidFormatException, IOException 

Source Link

Document

Open a package.

Usage

From source file:org.obeonetwork.m2doc.generator.test.VariousTest.java

License:Open Source License

@Test
public void testPropertiesAccess()
        throws InvalidFormatException, IOException, DocumentParserException, DocumentGenerationException {
    FileInputStream is = new FileInputStream("templates/propertiesTest.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    CustomProperties props = document.getProperties().getCustomProperties();
    List<CTProperty> properties = props.getUnderlyingProperties().getPropertyList();
    for (CTProperty property : properties) {
        // TODO Finish this.
    }/*  w  w w .  j av  a 2  s. c  o m*/
}

From source file:org.obeonetwork.m2doc.generator.UserContentManager.java

License:Open Source License

/**
 * Generates lost files if needed and update given {@link GenerationResult}.
 * /*www. j  a  va  2  s  .c  o  m*/
 * @param result
 *            the {@link GenerationResult}
 * @throws IOException
 *             if the lost {@link UserContent} can't be written
 * @throws InvalidFormatException
 *             if the input {@link DocumentTemplate} can't be read
 */
public void generateLostFiles(GenerationResult result) throws IOException, InvalidFormatException {
    for (Entry<String, List<UserContent>> entry : mapIdUserContent.entrySet()) {
        final URI lostUserContentURI = getLostUserContentURI(destination, entry.getKey());
        result.getLostUserContents().put(entry.getKey(), lostUserContentURI);
        final boolean isNewUserContentLoss;
        final URI inputURI;
        if (uriConverter.exists(lostUserContentURI, Collections.EMPTY_MAP)) {
            inputURI = lostUserContentURI;
            isNewUserContentLoss = false;
        } else {
            inputURI = documentTemplate.eResource().getURI();
            isNewUserContentLoss = true;
        }

        try (InputStream is = uriConverter.createInputStream(inputURI);
                OPCPackage oPackage = OPCPackage.open(is);
                XWPFDocument destinationDocument = new XWPFDocument(oPackage);) {
            if (isNewUserContentLoss) {
                // clear the document
                int size = destinationDocument.getBodyElements().size();
                for (int i = 0; i < size; i++) {
                    destinationDocument.removeBodyElement(0);
                }
            }
            XWPFParagraph currentGeneratedParagraph = destinationDocument.createParagraph();
            M2DocUtils.appendMessageRun(currentGeneratedParagraph, ValidationMessageLevel.WARNING,
                    format.format(new Date()) + " - Lost user content " + entry.getKey());
            result.updateLevel(ValidationMessageLevel.WARNING);
            currentGeneratedParagraph = destinationDocument.createParagraph();

            for (UserContent userContent : entry.getValue()) {
                final UserContentRawCopy userContentRawCopy = new UserContentRawCopy();
                try {
                    currentGeneratedParagraph = destinationDocument.createParagraph();
                    currentGeneratedParagraph = userContentRawCopy.copy(userContent, currentGeneratedParagraph,
                            destinationDocument);
                } catch (InvalidFormatException e) {
                    M2DocUtils.appendMessageRun(currentGeneratedParagraph, ValidationMessageLevel.ERROR,
                            USERDOC_COPY_ERROR + e.getMessage());
                    result.updateLevel(ValidationMessageLevel.ERROR);
                } catch (XmlException e) {
                    M2DocUtils.appendMessageRun(currentGeneratedParagraph, ValidationMessageLevel.ERROR,
                            USERDOC_COPY_ERROR + e.getMessage());
                    result.updateLevel(ValidationMessageLevel.ERROR);
                } catch (IOException e) {
                    M2DocUtils.appendMessageRun(currentGeneratedParagraph, ValidationMessageLevel.ERROR,
                            USERDOC_COPY_ERROR + e.getMessage());
                    result.updateLevel(ValidationMessageLevel.ERROR);
                }
            }

            POIServices.getInstance().saveFile(uriConverter, destinationDocument, lostUserContentURI);
        }
    }
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tests the error reporting on a repetition tag with a syntactically
 * invalid expression//from  ww w.  j a va 2 s  .  c o m
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testRepetitionError1() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidFor1.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Repetition);
    Repetition repetition = (Repetition) template.getSubConstructs().get(0);
    assertEquals(1, repetition.getParsingErrors().size());
    assertEquals("Expression self. is invalid", repetition.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tess the error reporting on a repetition tag without iteration variable
 * defined./*from w w  w . ja va  2  s .c o m*/
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testRepetitionError2() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidFor2.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Repetition);
    Repetition repetition = (Repetition) template.getSubConstructs().get(0);
    assertEquals(1, repetition.getParsingErrors().size());
    assertEquals("Malformed tag gd:for : no iteration variable specified.",
            repetition.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tess the error reporting on a repetition tag without iteration variable
 * defined./*from   www . jav a2 s  .  c om*/
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testRepetitionError3() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidFor3.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Repetition);
    Repetition repetition = (Repetition) template.getSubConstructs().get(0);
    assertEquals(1, repetition.getParsingErrors().size());
    assertEquals("Malformed tag gd:for, no '|' found.", repetition.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tess the error reporting on a repetition tag without iteration variable
 * defined./*w  w w.ja  va2 s .co  m*/
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testRepetitionError4() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidFor4.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Repetition);
    Repetition repetition = (Repetition) template.getSubConstructs().get(0);
    assertEquals(1, repetition.getParsingErrors().size());
    assertEquals("Unexpected tag EOF at this location", repetition.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tess the error reporting on a repetition tag without iteration variable
 * defined.//from ww w.j a  v a  2  s  .c  om
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testRepetitionError5() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidFor5.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertEquals(1, template.getParsingErrors().size());
    assertEquals("Unexpected tag m:endfor at this location", template.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tess the error reporting on a query tag with an invalid expression.
 * /*from w ww.  j  av a 2s.  c o  m*/
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testQueryTagError() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidAQL.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(2, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(1) instanceof Query);
    Query query = (Query) template.getSubConstructs().get(1);
    assertEquals("Expression self. is invalid", query.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tests the error reporting on a conditionnal tag with a syntactically
 * invalid expression//from  w w  w  .  ja  va  2s.  c o m
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testConditionnalError1() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidConditionnal1.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Conditionnal);
    Conditionnal conditionnal = (Conditionnal) template.getSubConstructs().get(0);
    assertEquals(1, conditionnal.getParsingErrors().size());
    assertEquals("Expression x= is invalid", conditionnal.getParsingErrors().get(0).getMessage());
}

From source file:org.obeonetwork.m2doc.parser.test.DocumentParserErrorsTest.java

License:Open Source License

/**
 * Tests the error reporting on a conditionnal without an gd:endif tag
 * /*from  www .j a v a2 s.c om*/
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testConditionnalError2() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidConditionnal2.docx");
    OPCPackage oPackage = OPCPackage.open(is);
    XWPFDocument document = new XWPFDocument(oPackage);
    BodyParser parser = new BodyParser(document, env);
    Template template = parser.parseTemplate();
    assertEquals(document, template.getDocument());
    assertEquals(1, template.getSubConstructs().size());
    assertTrue(template.getSubConstructs().get(0) instanceof Conditionnal);
    Conditionnal conditionnal = (Conditionnal) template.getSubConstructs().get(0);
    assertEquals(2, conditionnal.getParsingErrors().size());
    assertEquals("Unexpected tag EOF at this location", conditionnal.getParsingErrors().get(0).getMessage());
    assertEquals("gd:elseif, gd:else or gd:endif expected here.",
            conditionnal.getParsingErrors().get(1).getMessage());
}