2016-12-02 23 views
1

私はPDFをテキストに変換しています。 PDFからテキストを正しく取得できますが、テーブル構造が複雑です。私はPDFがテーブル構造をサポートしていないことを知っているが、私はそこに正しくセルを取得する方法があると思う。さて、例えば:iTextSharp PDFファイルの表を読むには

> This is first example. 

> This is second example. 

しかし、私はテキストにPDFに変換する際に、theese件のデータがこのように見える:

私はこのようなテキストに変換したい

> This is This is 

> first example. second example. 

値を正しく取得するにはどうすればよいですか?

--edit:ここ

私はテキストにPDFに変換なかった方法です:私のコメント実際の答えにするために

OpenFileDialog ofd = new OpenFileDialog(); 
     string filepath; 
     ofd.Filter = "PDF Files(*.PDF)|*.PDF|All Files(*.*)|*.*"; 

     if (ofd.ShowDialog() == DialogResult.OK) 
     { 
      filepath = ofd.FileName.ToString(); 

      string strText = string.Empty; 
      try 
      { 
       PdfReader reader = new PdfReader(filepath); 

       for (int page = 1; page < reader.NumberOfPages; page++) 
       { 
        ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(); 
        string s = PdfTextExtractor.GetTextFromPage(reader, page, its); 

        s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); 
        strText += s; 
       } 
       reader.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
+0

あなたはそのテキストを取得するために使用しているコードを共有できますか? – Bassie

+0

@Bassieありがとう、私は自分の投稿を更新しました。 – pseudocode

+0

これはデフォルトでは可能ではないようですが、これをチェックして解決策を探してください:http://stackoverflow.com/questions/7513209/using-locationtextextractionstrategy-in-itextsharp-for-text-coordinate/7515625#7515625 – Bassie

答えて

1

...

あなたはLocationTextExtractionStrategyを使用テキスト抽出:

ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(); 
string s = PdfTextExtractor.GetTextFromPage(reader, page, its); 

このstr ategyは、見つかったすべてのテキストを上から下へ(実際にはテキスト行の角度を考慮して)左から右に並べます。したがって、マルチラインコンテンツのセルを含むテーブルからテキストを抽出する必要はありません。 1が取ることができるさまざまなアプローチがあり、問題の文書によって

:問題の文書内のテキスト描画操作はすでに1がテキスト抽出のために望んでいるためである場合

  • はiTextのSimpleTextExtractionStrategyを使用してください。
  • ドキュメントテーブルが適切にタグ付けされている場合、タグ情報を使用するカスタムテキスト抽出戦略を使用します。
  • 複雑なカスタムテキスト抽出戦略を使用して、テキスト配列、ラインパス、または背景色からヒントを得て、表のセル構造を推測し、セルごとにテキストを抽出します。この場合

、OPはそれが働いていた、彼はSimpleTextExtractionStrategyLocationTextExtractionStrategyを変えたとコメントしました。

関連する問題