2016-11-20 1 views
0

Это мой первый раз, когда я использовал репозиторий Maven, поэтому извиняюсь, если его простое разрешение.Неопределенный конструктор в коде с использованием хранилища PDFbox

Мой код выглядит следующим образом:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 

import org.apache.pdfbox.cos.COSDocument; 
import org.apache.pdfbox.io.RandomAccessRead; 
import org.apache.pdfbox.pdfparser.PDFParser; 
import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.text.PDFTextStripper; 

public class application { 

public static void main(String args[]) { 
    PDFTextStripper pdfStripper = null; 
    PDDocument pdDoc = null; 
    COSDocument cosDoc = null; 
    File file = new File("/Users/Desktop/Corporate reports/previous 'fetch' items/ARM2009.pdf"); 
    try { 
     PDFParser parser = new PDFParser(new FileInputStream(file)); 
     parser.parse(); 
     cosDoc = parser.getDocument(); 
     pdfStripper = new PDFTextStripper(); 
     pdDoc = new PDDocument(cosDoc); 
     pdfStripper.setStartPage(1); 
     pdfStripper.setEndPage(5); 
     String parsedText = pdfStripper.getText(pdDoc); 
     System.out.println(parsedText); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     System.out.println("Failed to parse : " +file); 
    } 
} 

} 

По сути, 19-й линии, где говорят:

PDFParser parser = new PDFParser(new FileInputStream(file)); 

дает ошибку во время компиляции. Он говорит:

Конструктор PDFParser (FileInputStream) является неопределенными

Я не знаю, как справиться с этим. Моя IDE рекомендует использовать аргумент RandomAccessRead, но это просто заканчивается другой ошибкой во время выполнения

Пожалуйста, помогите поблагодарить вас.

+0

где здесь находится maven? непонятно – borowis

+0

Вместо 5 строк после «try» просто сделайте это «pdDoc = PDDocument.load (файл)», а затем создайте свой textStripper. –

ответ

0

Если сравнить Javadocs для pdfparser в pdfbox v2 против v1.8, вы заметите, что определение конструктора изменилось с

PDFParser(InputStream input) 

в

PDFParser(RandomAccessRead source) 

Поэтому, пожалуйста, убедитесь, что вы ссылаетесь правильно версия от maven. Если вы планируете придерживаться версии 2, обязательно используйте что-то вроде RandomAccessFile, а не FileInputStream.

+0

отлично, спасибо большое – will

Смежные вопросы