package technology.tabula;
import static org.junit.Assert.assertEquals;
import java.io.*;
import java.nio.charset.Charset;
import java.util.List;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVPrinter;
import org.apache.pdfbox.pdmodel.PDDocument;
public class UtilsForTesting {
public static Page getAreaFromFirstPage(String path, float top, float left, float bottom, float right) throws IOException {
return getAreaFromPage(path, 1, top, left, bottom, right);
}
public static Page getAreaFromPage(String path, int page, float top, float left, float bottom, float right) throws IOException {
return getPage(path, page).getArea(top, left, bottom, right);
}
public static Page getPage(String path, int pageNumber) throws IOException {
ObjectExtractor oe = null;
try {
PDDocument document = PDDocument
.load(new File(path));
oe = new ObjectExtractor(document);
Page page = oe.extract(pageNumber);
return page;
} finally {
if (oe != null)
oe.close();
}
}
public static String[][] tableToArrayOfRows(Table table) {
List<List<RectangularTextContainer>> tableRows = table.getRows();
int maxColCount = -Integer.MAX_VALUE;
for (int i = 0; i < tableRows.size(); i++) {
List<RectangularTextContainer> row = tableRows.get(i);
if (maxColCount < row.size()) {
maxColCount = row.size();
}
}
String[][] rv = new String[tableRows.size()][maxColCount];
for (int i = 0; i < tableRows.size(); i++) {
List<RectangularTextContainer> row = tableRows.get(i);
for (int j = 0; j < row.size(); j++) {
rv[i][j] = table.getCell(i, j).getText();
}
}
return rv;
}
public static String loadJson(String path) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
return stringBuilder.toString();
}
public static String loadCsv(String path) throws IOException {
StringBuilder out = new StringBuilder();
CSVParser parse = org.apache.commons.csv.CSVParser.parse(new File(path), Charset.forName("utf-8"), CSVFormat.EXCEL);
CSVPrinter printer = new CSVPrinter(out, CSVFormat.EXCEL);
printer.printRecords(parse);
printer.close();
String csv = out.toString().replaceAll("(?<!\r)\n", "\r");
return csv;
}
}