protected void initConnections(Integer[] ports) { for (Integer port : ports) { connections.add(createConnection(port)); } connectionsQueue.addAll(connections); }
public OfficeIntegration(String openOfficePath, Integer... ports) { this.openOfficePath = openOfficePath; this.openOfficePorts = ports; initConnections(ports); executor = createExecutor(); }
protected File createTempFile(byte[] bytes) { try { String tempFileName = String.format("document%d", counter.incrementAndGet()); String tempFileExt = ".tmp"; if (StringUtils.isNotBlank(officeIntegration.getTemporaryDirPath())) { Path tempDir = Paths.get(officeIntegration.getTemporaryDirPath()); tempDir.toFile().mkdirs(); temporaryFile = Files.createTempFile( tempDir, tempFileName, tempFileExt) .toFile(); } else { temporaryFile = File.createTempFile(tempFileName, tempFileExt); } FileUtils.writeByteArrayToFile(temporaryFile, bytes); return temporaryFile; } catch (java.io.IOException e) { throw new ReportFormattingException("Could not create temporary file for pdf conversion", e); } }
OfficeIntegration officeIntegration = new OfficeIntegration(openOfficePath, ports); formatterFactory.setOfficeIntegration(officeIntegration); officeIntegration.setTimeoutInSeconds(Integer.valueOf(openOfficeTimeout)); officeIntegration.setDisplayDeviceAvailable(Boolean.valueOf(displayDeviceAvailable));
final CountDownLatch countDownLatch = new CountDownLatch(3); final DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); final OfficeIntegration officeIntegrationAPI = new OfficeIntegration(openOfficePath, 8100, 8101, 8102); officeIntegrationAPI.setTimeoutInSeconds(10); officeIntegrationAPI.setTemporaryDirPath("./result/temp/");
@Test public void testXlsToPdf() throws Exception { BandData root = createRootBand(); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result.pdf"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("xls", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.xls", "./modules/core/test/smoketest/test.xls", ReportOutputType.pdf), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Override public void runTaskWithTimeout(final OfficeTask officeTask, int timeoutInSeconds) throws NoFreePortsException { final OfficeConnection connection = acquireConnection(); Future future = null; try { future.cancel(true); releaseConnection(connection);
protected OfficeConnection createConnection(Integer port) { return new OfficeConnection(openOfficePath, port, resolveProcessManager(), this); }
OfficeIntegration officeIntegration = new OfficeIntegration(openOfficePath, ports); formatterFactory.setOfficeIntegration(officeIntegration); officeIntegration.setTimeoutInSeconds(Integer.valueOf(openOfficeTimeout)); officeIntegration.setDisplayDeviceAvailable(Boolean.valueOf(displayDeviceAvailable));
defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("odt", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/colontitules.odt", "./modules/core/test/smoketest/colontitules.odt", ReportOutputType.doc), outputStream));
@Override public void runTaskWithTimeout(final OfficeTask officeTask, int timeoutInSeconds) throws NoFreePortsException { final OfficeConnection connection = acquireConnection(); Future future = null; try { future.cancel(true); releaseConnection(connection);
protected OfficeConnection createConnection(Integer port) { return new OfficeConnection(openOfficePath, port, resolveProcessManager(), this); }
defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("xlsx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/print-spaces.xlsx", "./modules/core/test/smoketest/print-spaces.xlsx", ReportOutputType.pdf), outputStream));
public OfficeIntegration(String openOfficePath, Integer... ports) { this.openOfficePath = openOfficePath; this.openOfficePorts = ports; initConnections(ports); executor = createExecutor(); }
protected void initConnections(Integer[] ports) { for (Integer port : ports) { connections.add(createConnection(port)); } connectionsQueue.addAll(connections); }
protected File createTempFile(byte[] bytes) { try { String tempFileName = String.format("document%d", counter.incrementAndGet()); String tempFileExt = ".tmp"; if (StringUtils.isNotBlank(officeIntegration.getTemporaryDirPath())) { Path tempDir = Paths.get(officeIntegration.getTemporaryDirPath()); tempDir.toFile().mkdirs(); temporaryFile = Files.createTempFile( tempDir, tempFileName, tempFileExt) .toFile(); } else { temporaryFile = File.createTempFile(tempFileName, tempFileExt); } FileUtils.writeByteArrayToFile(temporaryFile, bytes); return temporaryFile; } catch (java.io.IOException e) { throw new ReportFormattingException("Could not create temporary file for pdf conversion", e); } }
@Test public void testDoc() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result2.doc"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("doc", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.doc", "./modules/core/test/smoketest/test.doc", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testDocxToHtml_OfficeIntegration() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_docx_office.html"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("docx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.docx", "./modules/core/test/smoketest/test.docx", ReportOutputType.html), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testOdt() throws Exception { BandData root = createRootBand(); root.addReportFieldFormats(Collections.singletonList(new ReportFieldFormatImpl("Band1.col2", "${html}"))); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result.doc"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("odt", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.odt", "./modules/core/test/smoketest/test.odt", ReportOutputType.doc), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }
@Test public void testDocxToPdf() throws Exception { BandData root = createRootBand(); BandData footer = root.getChildByName("Footer"); BandData footerChild = new BandData("FooterChild", footer); footerChild.addData("nestedData", "NESTED_DATA"); footer.addChild(footerChild); FileOutputStream outputStream = new FileOutputStream("./result/smoke/result_docx.pdf"); DefaultFormatterFactory defaultFormatterFactory = new DefaultFormatterFactory(); defaultFormatterFactory.setOfficeIntegration(new OfficeIntegration(openOfficePath, 8100)); ReportFormatter formatter = defaultFormatterFactory.createFormatter(new FormatterFactoryInput("docx", root, new ReportTemplateImpl("", "./modules/core/test/smoketest/test.docx", "./modules/core/test/smoketest/test.docx", ReportOutputType.pdf), outputStream)); formatter.renderDocument(); IOUtils.closeQuietly(outputStream); }