List of usage examples for org.apache.poi.openxml4j.opc OPCPackage open
public static OPCPackage open(InputStream in) throws InvalidFormatException, IOException
From source file:org.obeonetwork.m2doc.properties.test.TemplateInfoTest.java
License:Open Source License
@Test public void testVariableMap() throws IOException, InvalidFormatException { FileInputStream is = new FileInputStream("templates/propertiesTest.docx"); OPCPackage oPackage = OPCPackage.open(is); XWPFDocument document = new XWPFDocument(oPackage); TemplateInfo info = new TemplateInfo(document); Map<String, String> variables = info.getVariables(); assertEquals("database.Table", variables.get("variable1")); assertEquals("database.Column", variables.get("variable2")); }
From source file:org.obeonetwork.m2doc.test.AbstractTemplatesTestSuite.java
License:Open Source License
/** * Tests the parsing by comparing the result of the generation. * /*from w w w . j a v a 2 s. c o m*/ * @throws Exception * if the generation fails */ @Test public void generation() throws Exception { final File expectedGeneratedFile = getExpectedGeneratedFile(new File(testFolderPath)); final File templateFile = getTemplateFile(new File(testFolderPath)); final File userContentFile = getUserContentFile(new File(testFolderPath)); File outputFile = null; if (expectedGeneratedFile.exists()) { outputFile = File.createTempFile(expectedGeneratedFile.getAbsolutePath(), "generated-test"); } else { outputFile = getActualGeneratedFile(new File(testFolderPath)); if (userContentFile.exists()) { Files.copy(userContentFile, outputFile); } generateTemplate(templateFile, outputFile); fail(expectedGeneratedFile.getAbsoluteFile() + " doesn't exists."); } try (FileInputStream is = new FileInputStream(templateFile)) { try (OPCPackage oPackage = OPCPackage.open(is)) { try (XWPFDocument document = new XWPFDocument(oPackage)) { if (userContentFile.exists()) { Files.copy(userContentFile, outputFile); } generateTemplate(templateFile, outputFile); M2DocTestUtils.assertDocx(expectedGeneratedFile.getAbsolutePath(), outputFile.getAbsolutePath()); } } } finally { if (outputFile != null) { outputFile.delete(); } } }
From source file:org.obeonetwork.m2doc.tests.generator.DocumentGeneratorTests.java
License:Open Source License
@Test public void testBookmarkNominal() throws Exception { try (FileInputStream resIs = new FileInputStream( "resources/bookmark/nominal/nominal-expected-generation.docx"); OPCPackage resOPackage = OPCPackage.open(resIs); XWPFDocument resDocument = new XWPFDocument(resOPackage);) { assertEquals(5, resDocument.getBodyElements().size()); assertTrue(resDocument.getBodyElements().get(1) instanceof XWPFParagraph); XWPFParagraph paragraph = (XWPFParagraph) resDocument.getBodyElements().get(1); assertEquals(6, paragraph.getRuns().size()); assertEquals("Test link before bookmark: ", paragraph.getRuns().get(0).text()); final BigInteger id = new BigInteger(paragraph.getRuns().get(1).getCTR().getRsidR()); assertTrue(id != BigInteger.ZERO); assertEquals(1, paragraph.getRuns().get(1).getCTR().getFldCharList().size()); assertEquals(STFldCharType.BEGIN, paragraph.getRuns().get(1).getCTR().getFldCharList().get(0).getFldCharType()); assertEquals(id, new BigInteger(paragraph.getRuns().get(2).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(2).getCTR().getInstrTextList().size()); assertEquals(Space.PRESERVE, paragraph.getRuns().get(2).getCTR().getInstrTextList().get(0).getSpace()); assertEquals(" REF bookmark1 \\h ", paragraph.getRuns().get(2).getCTR().getInstrTextList().get(0).getStringValue()); assertEquals(id, new BigInteger(paragraph.getRuns().get(3).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(3).getCTR().getFldCharList().size()); assertEquals(STFldCharType.SEPARATE, paragraph.getRuns().get(3).getCTR().getFldCharList().get(0).getFldCharType()); assertEquals(id, new BigInteger(paragraph.getRuns().get(4).getCTR().getRsidR())); assertEquals("a reference to bookmark1", paragraph.getRuns().get(4).text()); assertEquals(id, new BigInteger(paragraph.getRuns().get(5).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(5).getCTR().getFldCharList().size()); assertEquals(STFldCharType.END,/*ww w . j a v a 2s.com*/ paragraph.getRuns().get(5).getCTR().getFldCharList().get(0).getFldCharType()); assertTrue(resDocument.getBodyElements().get(1) instanceof XWPFParagraph); paragraph = (XWPFParagraph) resDocument.getBodyElements().get(2); assertEquals(1, paragraph.getCTP().getBookmarkStartList().size()); assertEquals("bookmark1", paragraph.getCTP().getBookmarkStartList().get(0).getName()); assertEquals(1, paragraph.getCTP().getBookmarkEndList().size()); assertTrue(resDocument.getBodyElements().get(2) instanceof XWPFParagraph); paragraph = (XWPFParagraph) resDocument.getBodyElements().get(3); assertEquals(7, paragraph.getRuns().size()); assertEquals("Test link after bookmark: ", paragraph.getRuns().get(0).text()); assertEquals(id, new BigInteger(paragraph.getRuns().get(1).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(1).getCTR().getFldCharList().size()); assertEquals(STFldCharType.BEGIN, paragraph.getRuns().get(1).getCTR().getFldCharList().get(0).getFldCharType()); assertEquals(id, new BigInteger(paragraph.getRuns().get(2).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(2).getCTR().getInstrTextList().size()); assertEquals(Space.PRESERVE, paragraph.getRuns().get(2).getCTR().getInstrTextList().get(0).getSpace()); assertEquals(" REF bookmark1 \\h ", paragraph.getRuns().get(2).getCTR().getInstrTextList().get(0).getStringValue()); assertEquals(id, new BigInteger(paragraph.getRuns().get(3).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(3).getCTR().getFldCharList().size()); assertEquals(STFldCharType.SEPARATE, paragraph.getRuns().get(3).getCTR().getFldCharList().get(0).getFldCharType()); assertEquals(id, new BigInteger(paragraph.getRuns().get(4).getCTR().getRsidR())); assertEquals("a reference to bookmark1", paragraph.getRuns().get(4).text()); assertEquals(id, new BigInteger(paragraph.getRuns().get(5).getCTR().getRsidR())); assertEquals(1, paragraph.getRuns().get(5).getCTR().getFldCharList().size()); assertEquals(STFldCharType.END, paragraph.getRuns().get(5).getCTR().getFldCharList().get(0).getFldCharType()); } }
From source file:org.obeonetwork.m2doc.tests.generator.TemplateValidationGeneratorTests.java
License:Open Source License
/** * Ensure that the validation generation produces a document with an info. * // w ww . j a v a 2 s .c o m * @throws InvalidFormatException * @throws IOException * @throws DocumentParserException * @throws DocumentGenerationException */ @Test public void testInfoGeneration() throws InvalidFormatException, IOException, DocumentParserException, DocumentGenerationException { IQueryEnvironment queryEnvironment = org.eclipse.acceleo.query.runtime.Query .newEnvironmentWithDefaultServices(null); final File tempFile = File.createTempFile("testParsingErrorSimpleTag", ".docx"); try (DocumentTemplate template = M2DocUtils.parse( URI.createFileURI("resources/document/notEmpty/notEmpty-template.docx"), queryEnvironment, this.getClass().getClassLoader())) { final XWPFRun location = ((XWPFParagraph) template.getDocument().getBodyElements().get(0)).getRuns() .get(0); template.getBody().getValidationMessages().add(new TemplateValidationMessage( ValidationMessageLevel.INFO, "XXXXXXXXXXXXXXXXXXXXXXXX", location)); M2DocUtils.serializeValidatedDocumentTemplate(template, URI.createFileURI(tempFile.getAbsolutePath())); } assertTrue(new File(tempFile.getAbsolutePath()).exists()); try (FileInputStream resIs = new FileInputStream(tempFile.getAbsolutePath()); OPCPackage resOPackage = OPCPackage.open(resIs); XWPFDocument resDocument = new XWPFDocument(resOPackage);) { final XWPFRun messageRun = M2DocTestUtils.getRunContaining(resDocument, "XXXXXXXXXXXXXXXXXXXXXXXX"); assertNotNull(messageRun); assertEquals("XXXXXXXXXXXXXXXXXXXXXXXX", messageRun.text()); assertEquals("0000FF", messageRun.getColor()); } tempFile.delete(); }
From source file:org.obeonetwork.m2doc.tests.generator.TemplateValidationGeneratorTests.java
License:Open Source License
/** * Ensure that the validation generation produces a document with an warning. * /*from w w w . ja v a 2s. c o m*/ * @throws InvalidFormatException * @throws IOException * @throws DocumentParserException * @throws DocumentGenerationException */ @Test public void testWarningGeneration() throws InvalidFormatException, IOException, DocumentParserException, DocumentGenerationException { IQueryEnvironment queryEnvironment = org.eclipse.acceleo.query.runtime.Query .newEnvironmentWithDefaultServices(null); final File tempFile = File.createTempFile("testParsingErrorSimpleTag", ".docx"); try (DocumentTemplate template = M2DocUtils.parse( URI.createFileURI("resources/document/notEmpty/notEmpty-template.docx"), queryEnvironment, this.getClass().getClassLoader())) { final XWPFRun location = ((XWPFParagraph) template.getDocument().getBodyElements().get(0)).getRuns() .get(0); template.getBody().getValidationMessages().add(new TemplateValidationMessage( ValidationMessageLevel.WARNING, "XXXXXXXXXXXXXXXXXXXXXXXX", location)); M2DocUtils.serializeValidatedDocumentTemplate(template, URI.createFileURI(tempFile.getAbsolutePath())); } assertTrue(new File(tempFile.getAbsolutePath()).exists()); try (FileInputStream resIs = new FileInputStream(tempFile.getAbsolutePath()); OPCPackage resOPackage = OPCPackage.open(resIs); XWPFDocument resDocument = new XWPFDocument(resOPackage);) { final XWPFRun messageRun = M2DocTestUtils.getRunContaining(resDocument, "XXXXXXXXXXXXXXXXXXXXXXXX"); assertNotNull(messageRun); assertEquals("XXXXXXXXXXXXXXXXXXXXXXXX", messageRun.text()); assertEquals("FFA500", messageRun.getColor()); } tempFile.delete(); }
From source file:org.obeonetwork.m2doc.tests.generator.TemplateValidationGeneratorTests.java
License:Open Source License
/** * Ensure that the validation generation produces a document with an error. * /*from w ww .j a v a 2s . c o m*/ * @throws InvalidFormatException * @throws IOException * @throws DocumentParserException * @throws DocumentGenerationException */ @Test public void testErrorGeneration() throws InvalidFormatException, IOException, DocumentParserException, DocumentGenerationException { IQueryEnvironment queryEnvironment = org.eclipse.acceleo.query.runtime.Query .newEnvironmentWithDefaultServices(null); final File tempFile = File.createTempFile("testParsingErrorSimpleTag", ".docx"); try (DocumentTemplate template = M2DocUtils.parse( URI.createFileURI("resources/document/notEmpty/notEmpty-template.docx"), queryEnvironment, this.getClass().getClassLoader())) { final XWPFRun location = ((XWPFParagraph) template.getDocument().getBodyElements().get(0)).getRuns() .get(0); template.getBody().getValidationMessages().add(new TemplateValidationMessage( ValidationMessageLevel.ERROR, "XXXXXXXXXXXXXXXXXXXXXXXX", location)); M2DocUtils.serializeValidatedDocumentTemplate(template, URI.createFileURI(tempFile.getAbsolutePath())); } assertTrue(new File(tempFile.getAbsolutePath()).exists()); try (FileInputStream resIs = new FileInputStream(tempFile.getAbsolutePath()); OPCPackage resOPackage = OPCPackage.open(resIs); XWPFDocument resDocument = new XWPFDocument(resOPackage);) { final XWPFRun messageRun = M2DocTestUtils.getRunContaining(resDocument, "XXXXXXXXXXXXXXXXXXXXXXXX"); assertNotNull(messageRun); assertEquals("XXXXXXXXXXXXXXXXXXXXXXXX", messageRun.text()); assertEquals("FF0000", messageRun.getColor()); } tempFile.delete(); }
From source file:org.obeonetwork.m2doc.tests.generator.TemplateValidationGeneratorTests.java
License:Open Source License
/** * Ensure that the validation generation produces a document with errors in the good order. * // w w w. jav a 2 s.c om * @throws InvalidFormatException * @throws IOException * @throws DocumentParserException * @throws DocumentGenerationException */ @Test public void testErrorGenerationOrder() throws InvalidFormatException, IOException, DocumentParserException, DocumentGenerationException { IQueryEnvironment queryEnvironment = org.eclipse.acceleo.query.runtime.Query .newEnvironmentWithDefaultServices(null); final File tempFile = File.createTempFile("testParsingErrorSimpleTag", ".docx"); try (DocumentTemplate template = M2DocUtils.parse( URI.createFileURI("resources/document/notEmpty/notEmpty-template.docx"), queryEnvironment, this.getClass().getClassLoader())) { final XWPFRun location = ((XWPFParagraph) template.getDocument().getBodyElements().get(0)).getRuns() .get(0); template.getBody().getValidationMessages() .add(new TemplateValidationMessage(ValidationMessageLevel.ERROR, "AAAA", location)); template.getBody().getValidationMessages() .add(new TemplateValidationMessage(ValidationMessageLevel.ERROR, "BBBB", location)); template.getBody().getValidationMessages() .add(new TemplateValidationMessage(ValidationMessageLevel.ERROR, "CCCC", location)); template.getBody().getValidationMessages() .add(new TemplateValidationMessage(ValidationMessageLevel.ERROR, "DDDD", location)); M2DocUtils.serializeValidatedDocumentTemplate(template, URI.createFileURI(tempFile.getAbsolutePath())); } assertTrue(new File(tempFile.getAbsolutePath()).exists()); try (FileInputStream resIs = new FileInputStream(tempFile.getAbsolutePath()); OPCPackage resOPackage = OPCPackage.open(resIs); XWPFDocument resDocument = new XWPFDocument(resOPackage);) { final XWPFRun messageARun = M2DocTestUtils.getRunContaining(resDocument, "AAAA"); final XWPFRun messageBRun = M2DocTestUtils.getRunContaining(resDocument, "BBBB"); final XWPFRun messageCRun = M2DocTestUtils.getRunContaining(resDocument, "CCCC"); final XWPFRun messageDRun = M2DocTestUtils.getRunContaining(resDocument, "DDDD"); assertNotNull(messageARun); assertEquals("AAAA", messageARun.text()); assertEquals("FF0000", messageARun.getColor()); assertNotNull(messageBRun); assertEquals("BBBB", messageBRun.text()); assertEquals("FF0000", messageBRun.getColor()); assertNotNull(messageCRun); assertEquals("CCCC", messageCRun.text()); assertEquals("FF0000", messageCRun.getColor()); assertNotNull(messageDRun); assertEquals("DDDD", messageDRun.text()); assertEquals("FF0000", messageDRun.getColor()); final int indexA = ((XWPFParagraph) messageARun.getParent()).getRuns().indexOf(messageARun); final int indexB = ((XWPFParagraph) messageBRun.getParent()).getRuns().indexOf(messageBRun); final int indexC = ((XWPFParagraph) messageCRun.getParent()).getRuns().indexOf(messageCRun); final int indexD = ((XWPFParagraph) messageDRun.getParent()).getRuns().indexOf(messageDRun); assertTrue(indexA < indexB); assertTrue(indexB < indexC); assertTrue(indexC < indexD); } tempFile.delete(); }
From source file:org.obeonetwork.m2doc.tests.M2DocTestUtils.java
License:Open Source License
/** * Gets the textual element of the .docx at the given {@link URI}. * /* ww w . j a v a2 s .c o m*/ * @param uri * the .docx {@link URI} * @return the textual element of the .docx at the given {@link URI} */ public static String getTextContent(URI uri) { String result = ""; try (InputStream is = URIConverter.INSTANCE.createInputStream(uri); OPCPackage oPackage = OPCPackage.open(is); XWPFDocument document = new XWPFDocument(oPackage); XWPFWordExtractor ex = new XWPFWordExtractor(document);) { result += "===== Document Text ====\n"; result += ex.getText(); // CHECKSTYLE:OFF } catch (Throwable e) { // CHECKSTYLE:ON /* * if for some reason we can't use POI to get the text content then move along, we'll still get the XML and hashs */ } return result; }
From source file:org.obeonetwork.m2doc.tests.parser.RunIteratorTests.java
License:Open Source License
@Test public void testNonEmptyDoc() throws InvalidFormatException, IOException { try (FileInputStream is = new FileInputStream("resources/document/notEmpty/notEmpty-template.docx"); OPCPackage oPackage = OPCPackage.open(is); XWPFDocument document = new XWPFDocument(oPackage);) { TokenIterator iterator = new TokenIterator(document); XWPFRun run = iterator.next().getRun(); assertEquals("P1Run1 ", run.getText(run.getTextPosition())); run = iterator.next().getRun();/*from www.java2 s . co m*/ assertEquals("P1Run2", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals(" P1Run3", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals("P2Run1 ", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals("P2Run2", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals(" ", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals("P2Run3", run.getText(run.getTextPosition())); run = iterator.next().getRun(); assertEquals("", run.getText(run.getTextPosition())); assertTrue(!iterator.hasNext()); } }
From source file:org.obeonetwork.m2doc.tests.parser.RunIteratorTests.java
License:Open Source License
@Test public void testAccessEmptyIterator() throws InvalidFormatException, IOException { try (FileInputStream is = new FileInputStream("resources/document/notEmpty/notEmpty-template.docx"); OPCPackage oPackage = OPCPackage.open(is); XWPFDocument document = new XWPFDocument(oPackage);) { TokenIterator iterator = new TokenIterator(document); assertNotNull(iterator.next());/* w w w. ja v a 2 s.c o m*/ assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertFalse(iterator.hasNext()); boolean hasException = false; try { iterator.next(); } catch (NoSuchElementException e) { assertTrue(e instanceof NoSuchElementException); hasException = true; } assertTrue(hasException); } }