2017-02-22 8 views
1

でテキストにこんにちは、私は次のようなコンテンツを持つPDFファイルがあります: -C#PDFファイルには、複数行の値

Property Address: 123 Door   Form Type: Miscellaneous 
        ABC City 
        Pin - XXX 

私はコンテンツを取得するためにitextSharpを使用する場合、以下のように、それが得られる -

Property Address: 123 Door Form Type: Miscellaneous ABC City Pin - XXX 

データは次の行にあるため、混在しています。必要に応じてコンテンツを取得する方法を提案してください。おかげ

Property Address: 123 Door ABC City Pin - XXX Form Type: Miscellaneous 
+0

列にPDFを読み込むようにしてください[この記事を参照してください](http://stackoverflow.com/questions/25498598/ read-columns-of-pdf-in-c-sharp-using-itextsharp) – AKN

+1

あなたは、pdfを見て、どのようにそれらの単語があなたが望む順序で一緒に属していることを認識していますか?それを十分詳細に記述するとすぐに、それをプログラムで実装しようとします。 – mkl

+0

私は投稿の1つから解決策を得ました。私のために働いています。それを確認してください。 Thanks –

答えて

0

iTextSharpを使用して、次のコードは、PDFのフォーマットで助けた -

PdfReader reader = new PdfReader(path); 
int pagenumber = reader.NumberOfPages; 
for (int page = 1; page <= pagenumber; page++) 
{ 
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); 
    string tt = PdfTextExtractor.GetTextFromPage(reader, page , strategy); 
    tt = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(tt))); 
    File.AppendAllLines(outfile, tt, Encoding.UTF8); 
} 
+0

'SimpleTextExtractionStrategy'は、描画された順にテキストを返します。あなたの場合は、必要な注文のようです。しかし、あなたの入力を生成する解決策は、時間の経過と共に変わるかもしれません。そして、注文がそれ以上一致しなければ、別の方法を見つけなければなりません。 – mkl

+0

これは、 'tt = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default、Encoding.UTF8、Encoding.Default.GetBytes(tt)))')は複雑なNOP(操作なし)であり、それ? – mkl

関連する問題