Example usage for org.apache.poi.xwpf.usermodel XWPFDocument XWPFDocument

List of usage examples for org.apache.poi.xwpf.usermodel XWPFDocument XWPFDocument

Introduction

In this page you can find the example usage for org.apache.poi.xwpf.usermodel XWPFDocument XWPFDocument.

Prototype

public XWPFDocument(InputStream is) throws IOException 

Source Link

Usage

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

License:Open Source License

/**
 * Generates lost files if needed and update given {@link GenerationResult}.
 * /*from w  w  w.  j a va 2 s  .  c  om*/
 * @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 . ja v  a 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.//w  ww  .  ja v  a 2s  .  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 w ww  .  j a v a  2 s .  c  o m
 * 
 * @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 .  j  a  v  a2 s  .  c  o 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.  java2  s.co m
 * 
 * @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 www  .j ava2s . co  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/*ww w.  j a v a  2  s.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   ww w  .java2s. co  m*/
 * @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());
}

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

License:Open Source License

/**
 * Tests the error reporting on a conditionnal tag with an else without an
 * gd:endif tag//from   ww w  . jav a2  s.  com
 * 
 * @throws InvalidFormatException
 * @throws IOException
 * @throws DocumentParserException
 */
@Test
public void testConditionnalError3() throws InvalidFormatException, IOException, DocumentParserException {
    FileInputStream is = new FileInputStream("templates/testInvalidConditionnal3.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);
    Default elseBranch = ((Conditionnal) template.getSubConstructs().get(0)).getElse();
    assertNotNull(elseBranch);
    assertEquals(1, elseBranch.getParsingErrors().size());
    assertEquals("Unexpected tag EOF at this location", elseBranch.getParsingErrors().get(0).getMessage());
}