在我的程序中,我需要将pdf表解析为对象,但从pdf文件读取表时遇到问题,因为很少有列是空的,但其他列是满的,所以问题是:
我用的是pdfbox apache。所以有时城市名(miejscowość) 是一个长长的进入街道(ulica)的纵队。第二个问题是,当我试图逐行阅读时,我得到了一个友好的结果,用空格隔开,比如“21-421 aleksandr”ów斯坦宁łukowski-lubelskie“,所以理论上我可以用空格分割这一行,得到记录,但是就像你看到的,很少有记录所有的列都被填满了,而其他的只有很少。逐行读取的另一个问题是,正如您在图片中看到的,有时记录在一个单元格中有几个记录以“-”分隔,或者类似的街道号码(numery)列可以有3行。下面我添加了逐行读取的代码,并尝试通过矩形读取值,但这可能无法解决我的问题:
逐行(pdftextstripper)
for (int i = START_PAGE; i <= numberOfPages; i++) {
stripper.setStartPage(i);
stripper.setEndPage(i);
String page = stripper.getText(document);
String[] lines = page.split(stripper.getLineSeparator());
int rowToStart = i == START_PAGE ? ROW_TO_START_ON_START_PAGE : ROW_TO_START_ON_NEXT_PAGE;
for (int j = rowToStart; j < lines.length - 1; j++) {
log.info(lines[j]);
}
通过使用pdftextstripperbyarea
Rectangle postCodesColumn = new Rectangle(0, 40, 55, 780);
stripper.addRegion("postCodes", postCodesColumn);
stripper.addRegion("city", cityColumn);
stripper.addRegion("street", streetColumn);
stripper.addRegion("streetNumber",streetNumberColumn);
stripper.addRegion("borough",boroughColumn);
stripper.addRegion("county",countyColumn);
stripper.addRegion("voivodeship",voivodeshipColumn);
stripper.extractRegions(document.getPage(i));
暂无答案!
目前还没有任何答案,快来回答吧!