在使用org.apache.pdfbox和java解析pdf文档时,' - '被转换为'?'

时间:2015-08-17 08:11:15

标签: java pdfbox

PDPDDocument pdfDoc = PDDocument.load(input);
PDFTextStripper stripper=new PDFTextStripper();
stripper.setSortByPosition(true);
stripper.fixedCharWidth =5; 
String text= stripper.getText(pdfDoc);

当我在pdf文件中观察输入字符串的输出时:07‑Jul‑2014 / 7/ 2014

上述行的输出如下:07?JUL?2014 /  7/ 2014

2 个答案:

答案 0 :(得分:0)

Here it is a work around (at least for me) : 
String DD_MM_YYYY_DATE_FORMAT_REGEX="[0-9]{1,2}(\\?)[a-zA-Z]{3}(\\?)[0-9]{4}";//string length=10
String DD_MMM_YYYY_DATE_FORMAT_REGEX="[0-9]{1,2}(\\?)[a-zA-Z]{3}(\\?)[0-9]{4}";//length=11

if(wordArray[index].substring(0,11).matches(DD_MMM_YYYY_DATE_FORMAT_REGEX))
{
        wordArray[index]=wordArray[index].replaceAll("\\?", "/");
}
                                if(wordArray[index].substring(0,10).matches(DD_MM_YYYY_DATE_FORMAT_REGEX))
{
    wordArray[index]=wordArray[index].replaceAll("\\?", "/");
}

答案 1 :(得分:0)

它看起来像编码问题。鉴于您不会共享PDF,我只能建议您尝试以下方法:

PDFTextStripper stripper=new PDFTextStripper("UTF-8");