2011-09-17 10 views
3

pdfbox apipdfからテキストを抽出しています。
私のプログラムは、それが実際にPDFファイルからテキストを抽出しているが、PDF内のテキストの問題のフォントがCDAC-GISTSurekh(ヒンディー語フォント)にあり、私のプログラムの出力は、それがManglaにある同じフォントではなく、正常に動作しています。
pdfのテキストにも一致しません。
同じフォント(CDAC-GISTSurekh(ヒンディー語のフォント))をダウンロードしてコンピュータフォントに追加しましたが、出力はManglaでフォーマットされています。
解析中に出力のフォントを変更する方法はありますか?PDFBox、FontBoxなどを使用してPDFをテキストに解析する際のフォントの問題

は、任意の助けに感謝..私は書かれている

コード:

 


    import java.io.File; 
    import java.io.FileInputStream; 
    import java.io.IOException; 
    import org.apache.pdfbox.cos.COSDocument; 
    import org.apache.pdfbox.pdfparser.PDFParser; 
    import org.apache.pdfbox.pdmodel.PDDocument; 
    import org.apache.pdfbox.util.PDFTextStripper; 

    public class PDFTextParser { 
     static String pdftoText(String fileName) { 
      PDFParser parser; 
      String parsedText = null; 
      PDFTextStripper pdfStripper = null; 
      PDDocument pdDoc = null; 
      COSDocument cosDoc = null; 
      File file = new File(fileName); 
      if (!file.isFile()) { 
       System.out.println("File " + fileName + " does not exist."); 
       return null; 
      } 
      try { 
       parser = new PDFParser(new FileInputStream(file)); 
      } catch (IOException e) { 
       System.out.println("Unable to open PDF Parser. " + e.getMessage()); 
       return null; 
      } 
      try { 
       parser.parse(); 
       cosDoc = parser.getDocument(); 
       pdfStripper = new PDFTextStripper(); 
       pdDoc = new PDDocument(cosDoc); 
       pdfStripper.setStartPage(1); 
       pdfStripper.setEndPage(5); 
       parsedText = pdfStripper.getText(pdDoc); 
      } catch (Exception e) { 
         e.printStackTrace(); 
       System.out.println("An exception occured in parsing the PDF Document."+ e.getMessage()); 
      } finally { 
       try { 
        if (cosDoc != null) 
         cosDoc.close(); 
        if (pdDoc != null) 
         pdDoc.close(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
      return parsedText; 
     } 
     public static void main(String args[]){ 
      System.out.println(pdftoText("J:\\Users\\Shantanu\\Documents\\NetBeansProjects\\Pdf\\src\\PDfman\\A0410001.pdf")); 
     } 
    } 

 
+0

あなたは有権者リストを読もうとしていますか?はい、私が見つけたことは、テキストがイメージ形式であるため、それを解析するのが非常に難しいことです。同じことをやろうとしています。それを解析する際に。 –

答えて

1

を使用すると、以下の構文新しいPdfStripperオブジェクト、ユーザを作成し、そのためのエンコーディングを指定します。 (ISO -xxx)をPDFで使用される文字エンコーディングです

PdfTextStripper pdfStripper = new PDFTextStripper(ISO-XXXX) 

+0

コードはどこにありますか? pdfがどのISOコードで保存されたかを知る方法はありますか? –

+2

@Yonkee argで利用可能なコンストラクタはありません – varpekv

関連する問題