2009-10-28 4 views
6

У меня проблема с чтением pdf-файлов с помощью iText в java. Я могу читать только одну страницу, но когда я перехожу на вторую страницу, она дает исключение. Я хочу прочитать все страницы любого PDF-файла.Чтение pdf с помощью iText

PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

Я использую эти строки, а на второй строке - исключение.

+2

Просьба перечислить исключение, которое вы получите, без этого нет никакой информации для продолжения. –

ответ

2
  1. Попробуйте изменить расположение файла. Иногда ОС не позволяет считывать файлы с некоторых системных дисков другими приложениями. Поместите где-нибудь в D: и т. Д. Я сталкиваюсь с этой проблемой в Vista при чтении файлов с рабочего стола.

  2. Я на самом деле выполнял те же две строки кода в одном из моих PDF-файлов и печатал текст. Также убедитесь, что у вас есть достаточное количество страниц в PDF. (3 страницы или более) или попробуйте с помощью parser.getTextFromPage (1) и т. Д., Чтобы получить контент с других страниц.

+0

Спасибо, босс Это моя вина. Еще раз спасибо. – Sunil

0

Когда вы говорите одну страницу, вы имеете в виду первую страницу? вы можете индексировать страницы неправильно? Без всякой информации это может быть что угодно.

+0

PdfTextExtractor parser = новый PdfTextExtractor (новый PdfReader («C: /Text.pdf»)); parser.getTextFromPage (3); Я использую эти строки. Это дает исключение – Sunil

+0

Какое исключение оно дает? –

+0

java.io.IOException: C: /Text.pdf не найден как файл или ресурс. на com.lowagie.text.pdf.RandomAccessFileOrArray. (Неизвестный источник) at com.lowagie.text.pdf.RandomAccessFileOrArray. (Неизвестный источник) at com.lowagie.text.pdf.PRTokeniser. (Неизвестный источник) at com.lowagie.text.pdf.PdfReader. (Неизвестный источник) at com.lowagie.text.pdf.PdfReader. (Unknown Source) на test1.ReadPdf.read (ReadPdf.java:23) на test1.ReadPdf.main (ReadPdf.java:55) – Sunil

0

Вы перестраиваете парсер и считыватель для каждой операции? Вы можете это сделать, но это не очень эффективно (есть много накладных расходов при создании нового PdfReader).

0
import com.itextpdf.text.pdf.PdfReader; 
import com.itextpdf.text.pdf.parser.PdfTextExtractor; 

/** 
* This class is used to read an existing 
* pdf file using iText jar. 
* @author javawithease 
*/ 
public class PDFReadExample { 
    public static void main(String args[]){ 
    try { 
    //Create PdfReader instance. 
    PdfReader pdfReader = new PdfReader("D:\\testFile.pdf");  

    //Get the number of pages in pdf. 
    int pages = pdfReader.getNumberOfPages(); 

    //Iterate the pdf through pages. 
    for(int i=1; i<=pages; i++) { 
     //Extract the page content using PdfTextExtractor. 
     String pageContent = 
     PdfTextExtractor.getTextFromPage(pdfReader, i); 

     //Print the page content on console. 
     System.out.println("Content on Page " 
          + i + ": " + pageContent); 
     } 

     //Close the PdfReader. 
     pdfReader.close(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
    } 
} 
Смежные вопросы