2016-02-23 217 views
0

我試圖在PDF文件中提取「[」和「]」之間的文本,但我無法這樣做bcos文件似乎被加密。我得到了一些符號是不是可讀的格式..從pdf文件中提取文本

public class ITextReadDemo { 

     public static void main(String[] args) { 
      try { 
       PdfReader reader = new PdfReader("D:\\temp\\1.pdf"); 
       System.out.println("This PDF has "+reader.getNumberOfPages()+" pages."); 
       String page = PdfTextExtractor.getTextFromPage(reader, 2); 
       System.out.println("Page Content:\n\n"+page+"\n\n"); 
       System.out.println("Is this document tampered : "+reader.isTampered()); 
       System.out.println("Is this document encrypted : "+reader.isEncrypted()); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
} 

,但我得到這個異常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString 
    at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:147) 
    at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:775) 
    at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1152) 
    at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:512) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:172) 
    at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:161) 
    at pdfexc.ITextReadDemo.main(ITextReadDemo.java:19) 
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.ASN1OctetString 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 7 more 

我嘗試以下方法也。它是從PDF文件中讀取內容,但是當我展示它,它不是在可讀格式

void readfile() { 
     Path path = Paths.get("D:\\temp\\1.pdf"); 
     Scanner scanner = new Scanner(path); 
     while(scanner.hasNextLine()){ 
      String line = scanner.nextLine(); 
       System.out.println(line); 
     } 
} 

所有我需要的是從PDF文件(而不是文本文件)中的內容,因爲它是可讀格式我可以提取文本B/W [和]使用正則表達式..請幫助我,如果你知道解決方案。

+0

你是否檢查過你試圖閱讀的任何文件的r/w權限? –

回答

1

你的問題的原因已經由異常描述:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString 

iText的使用BouncyCastle的圖書館像加密和簽名的安全性相關的任務,你似乎沒有該庫在類路徑或至少不是它所需的版本。

不幸的是,不要說你使用哪個iText版本,所以我不知道哪個BouncyCastle版本是必需的版本。

+0

感謝您的建議......我會盡力 – Raj