2009-10-28 55 views
6

Tôi đang gặp sự cố khi đọc tệp pdf bằng cách sử dụng iText trong java. Tôi có thể đọc chỉ một trang nhưng khi tôi đi đến trang thứ hai nó cho exception.I muốn đọc tất cả các trang của bất kỳ tập tin pdf.Đọc pdf bằng cách sử dụng iText

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

Tôi đang sử dụng các dòng này và dòng thứ hai sẽ có ngoại lệ.

+2

Vui lòng liệt kê ngoại lệ bạn nhận được khi không có điều này không có thông tin để tiếp tục. –

Trả lời

2
  1. Thử thay đổi vị trí tệp. Đôi khi hệ điều hành không cho phép đọc tệp từ một số ổ đĩa hệ thống bằng các ứng dụng khác. Đặt một nơi nào đó trong D: vv Tôi phải đối mặt với vấn đề này trong Vista khi đọc các tập tin từ máy tính để bàn.

  2. Tôi thực tế đã chạy hai dòng mã giống nhau trên một trong các tệp PDF của tôi và nó đã in văn bản. Ngoài ra hãy chắc chắn rằng bạn có đủ trang trong PDF. (3 trang trở lên) hoặc thử với parser.getTextFromPage (1) vv để tải nội dung từ các trang khác.

+0

Cảm ơn ông chủ Đây là lỗi của tôi. Một lần nữa xin cảm ơn. – Sunil

0

khi bạn nói một trang, ý của bạn là trang đầu tiên? bạn có thể lập chỉ mục các trang không chính xác? Nếu không có bất kỳ thông tin thêm nó có thể là bất cứ điều gì.

+0

PdfTextExtractor parser = new PdfTextExtractor (PdfReader mới ("C: /Text.pdf")); parser.getTextFromPage (3); Tôi đang sử dụng các dòng này. Những điều này cho phép ngoại lệ – Sunil

+0

Ngoại lệ là gì? –

+0

java.io.IOException: C: /Text.pdf không được tìm thấy dưới dạng tệp hoặc tài nguyên. tại com.lowagie.text.pdf.RandomAccessFileOrArray. (Nguồn không xác định) tại com.lowagie.text.pdf.RandomAccessFileOrArray. (Nguồn không xác định) tại com.lowagie.text.pdf.PRTokeniser. (Nguồn không xác định) tại com.lowagie.text.pdf.PdfReader. (Nguồn không xác định) tại com.lowagie.text.pdf.PdfReader. (Unknown Source) tại test1.ReadPdf.read (ReadPdf.java:23) tại test1.ReadPdf.main (ReadPdf.java:55) – Sunil

0

Bạn có đang xây dựng lại trình phân tích cú pháp và trình đọc cho từng hoạt động không? Bạn có thể làm điều đó, nhưng nó không phải là rất hiệu quả (có rất nhiều chi phí với việc tạo ra một PdfReader mới).

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(); 
    } 
    } 
} 
Các vấn đề liên quan