List of usage examples for org.apache.poi.xwpf.usermodel XWPFDocument XWPFDocument
public XWPFDocument(InputStream is) throws IOException
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()); }