2015-06-10 3 views
0

Привет, У меня есть файл PDF, и мне нужно найти в нем определенную строку. Я пробовал различные методы, и я могу прочитать все содержимое в файле PDF, но не смог найти определенную строку.Чтобы найти конкретный файл в PDF-документе, используя Java

enter image description here

Вот в этом файле, мне нужно искать строку, такие как телефон, Garbage, аренда и т.д. индивидуально.

Не могли бы Вы помочь мне?

У меня есть нижеследующий код для чтения файла.

public class PDFBoxReader { 

private PDFParser parser; 
private PDFTextStripper pdfStripper; 
private PDDocument pdDoc ; 
private COSDocument cosDoc ; 

private String Text ; 
private String filePath; 
private File file; 

public PDFBoxReader() { 

} 
public String ToText() throws IOException 
{ 
    this.pdfStripper = null; 
    this.pdDoc = null; 
    this.cosDoc = null; 

    file = new File("D:\\report.pdf"); 
    parser = new PDFParser(new FileInputStream(file)); 

    parser.parse(); 
    cosDoc = parser.getDocument(); 
    pdfStripper = new PDFTextStripper(); 
    pdDoc = new PDDocument(cosDoc); 
    pdDoc.getNumberOfPages(); 

    pdfStripper.setStartPage(1); 
    pdfStripper.setEndPage(10); 
    // reading text from page 1 to 10 
    // if you want to get text from full pdf file use this code 
    // pdfStripper.setEndPage(pdDoc.getNumberOfPages()); 

    Text = pdfStripper.getText(pdDoc); 
    return Text; 
    } 

public void setFilePath(String filePath) { 
    this.filePath = filePath; 
} 

} 

Было бы здорово, если бы кто-то помог мне с кодом, который ищет определенную строку. Заранее спасибо.

+1

Я действительно не понимаю. Теперь у вас есть строка, содержащая весь контент из диапазона страниц или даже одной страницы. Что мешает вам искать эту строку для вашей конкретной строки? – mkl

+0

Если бы вы могли видеть PDF, мне нужно получить столбец рядом с этой конкретной строкой. Скажите по телефону, мне нужно получить следующий столбец с значением 0. Это относится ко всей такой строке. – SRS

+0

Итак, вы хотите извлечь структурированные данные из PDF. Это обычно сложно. Куда вы делитесь своим примером документа как PDF, а не как изображение? – mkl

ответ

1

String.indexOf("substring") Попробуйте с String того, что возвращается из метода ToText() и substring строку, которую вы хотите найти. (Боковое примечание, обычай в Java - это методы верблюжьей шкалы, которые в этом случае будут toText().)

Этот метод должен найти первый индекс введенной подстроки в вашем длинном String текста. Таким образом, вы можете сделать String.indexOf("Telephone"), чтобы найти первое появление слова Телефон в вашем String.

Если вы хотите, чтобы материал непосредственно после этой подстроки, индекс будет просто String.indexOf("substring")+"substring".length()

Вы даже можете найти следующее вхождение (или следующий после этого) с другой вариацией этого метода String.indexOf("substring", indexOfLastOccurrence+"substring".length)

Пример :

String myPDF = ToText(); 
int rentIndex = myPDF.indexOf("Rent")+"Rent".length(); 
String rent = myPDF.substring(rentIndex); //Find 1st occurrence of "Rent" and get info after it 
rent = rent.substring(int beginIndex, int endIndex); //Get endIndex-beginIndex characters after rent. (I assume you only want like a few numbers afterwards or something.) 
//process rent e.g. Integer.parseInt(rent) or something 

rentIndex = myPDF.indexOf("Rent",rentIndex)+"Rent".length(); 
rent = myPDF.substring(rentIndex); //Next occurrence of "Rent" 
//Repeat to find the next occurrence, and the one after that. (Until rentIndex gets set to a negative, indicating that no more occurrences exist.) 

Оба метода можно найти в API Java: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String)

+0

У вас есть образец кода для примера? – SRS

+0

Это в основном пример кода ... Но я обязательно добавлю блок – River

+0

за помощь. Отлично. – SRS

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