@Test public void testCsvConversion() throws IOException { PdfToExcelParameters params = getParams(); params.setOutputPrefix("[BASENAME]_[FILENUMBER]"); params.setCsvFormat(true); execute(params); testContext.assertTaskCompleted(); testContext.assertOutputSize(2) .assertOutputContainsFilenames("tabular-data_1.csv", "tabular-data_2.csv") .forRawOutput("tabular-data_1.csv", p -> { try { List<List<String>> contents = parseCsv(p.toFile()); assertThat(contents.size(), is(37)); assertThat(contents.get(0), is(Arrays.asList("OrderDate", "Region", "Rep", "Item", "Units", "Unit Cost", "Total"))); assertThat(contents.get(10), is(Arrays.asList("6/8/15", "East", "Jones", "Binder", "60", "8.99", "539.40"))); assertThat(contents.get(13), is(Arrays.asList("7/29/15", "East", "Parent", "Binder", "81", "19.99", "1,619.19"))); } catch (Exception e) { throw new RuntimeException(e); } }); }
@Test public void testExcelConversion() throws IOException { PdfToExcelParameters params = getParams(); execute(params); testContext.assertTaskCompleted(); testContext.assertOutputSize(1).assertOutputContainsFilenames("tabular-data.xlsx").forEachRawOutput(p -> { try { InputStream in = new FileInputStream(p.toFile()); Workbook wb = WorkbookFactory.create(in); assertThat(wb.getNumberOfSheets(), is(2)); Sheet sheet = wb.getSheetAt(0); assertThat(sheet.getPhysicalNumberOfRows(), is(37)); assertThat(sheet.getSheetName(), is("Table 1 (Page 1)")); assertThat(getDataRow(sheet, 0), is(Arrays.asList("OrderDate", "Region", "Rep", "Item", "Units", "Unit Cost", "Total"))); assertThat(getDataRow(sheet, 10), is(Arrays.asList("6/8/15", "East", "Jones", "Binder", "60", "8.99", "539.40"))); assertThat(getDataRow(sheet, 13), is(Arrays.asList("7/29/15", "East", "Parent", "Binder", "81", "19.99", "1,619.19"))); } catch (Exception e) { throw new RuntimeException(e); } }); }
@Test public void testMergedTables() throws IOException { PdfToExcelParameters params = getParams(); params.setMergeTablesSpanningMultiplePages(true); execute(params); testContext.assertTaskCompleted(); testContext.assertOutputSize(1).assertOutputContainsFilenames("tabular-data.xlsx").forEachRawOutput(p -> { try { InputStream in = new FileInputStream(p.toFile()); Workbook wb = WorkbookFactory.create(in); assertThat(wb.getNumberOfSheets(), is(1)); Sheet sheet = wb.getSheetAt(0); assertThat(sheet.getPhysicalNumberOfRows(), is(44)); assertThat(sheet.getSheetName(), is("Table 1 (Pages 1, 2)")); assertThat(getDataRow(sheet, 0), is(Arrays.asList("OrderDate", "Region", "Rep", "Item", "Units", "Unit Cost", "Total"))); assertThat(getDataRow(sheet, 10), is(Arrays.asList("6/8/15", "East", "Jones", "Binder", "60", "8.99", "539.40"))); assertThat(getDataRow(sheet, 13), is(Arrays.asList("7/29/15", "East", "Parent", "Binder", "81", "19.99", "1,619.19"))); assertThat(getDataRow(sheet, 37), is(Arrays.asList("9/10/16", "Central", "Gill", "Pencil", "7", "1.29", "9.03"))); } catch (Exception e) { throw new RuntimeException(e); } }); }