2013-06-14 31 views
6

itextsharpを使用してPDFファイルから段落テキストを取得するロジックはありますか?私はpdfがテキストの実行のみをサポートしており、そこには<p>タグや他のタグはpdfの段落を決定することはありません。しかし、私はその座標から段落を構築するためにテキストの実行の座標を取得しようとしましたが、運がありません:。 私のコードスニペットはここにあります:itextsharpを使用してPDFからテキスト段落を取得

private StringBuilder result = new StringBuilder(); 
    private Vector lastBaseLine; 
    //to store run of texts 
    public List<string> strings = new List<String>(); 
    //to store run of texts Coordinate (Y coordinate) 
    public List<float> baselines = new List<float>(); 

    public void RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo) 
    { 
     Vector curBaseline = renderInfo.GetBaseline().GetStartPoint(); 
     if ((this.lastBaseLine != null) && (curBaseline[Vector.I2] != lastBaseLine[Vector.I2])) 
     { 
      if ((!string.IsNullOrEmpty(this.result.ToString()))) 
      { 
       this.baselines.Add(this.lastBaseLine[Vector.I2]); 
       this.strings.Add(this.result.ToString()); 
      } 
      result = new StringBuilder(); 
     } 
     this.result.Append(renderInfo.GetText()); 
     this.lastBaseLine = curBaseline; 
    } 

は、すべてのボディは、この問題??

+3

..あなたを助けることは、タグ付きPDFあなたのPDFですか?そうでない場合は、どのテキストスニペットがどの段落に属しているかを判断する簡単な方法はありません(しかし、すでに発見しています)。 –

+0

あなたのresponeのための@BrunoLowagie高齢者、PDFはタグ付きPDFではありません。タグなしPDFから段落を抽出するためのソリューションはありませんか? –

+2

100%プルーフソリューションはありません。ヒューリスティックは単なる故障率の小さいか大きいです。 – mkl

答えて

1
using (MemoryStream ms = new MemoryStream()) 
{ 
    Document document = new Document(PageSize.A4, 25, 25, 30, 30); 
    PdfWriter writer = PdfWriter.GetInstance(document, ms); 
    document.Open(); 
    document.Add(new Paragraph("Hello World")); 
    document.Close(); 
    writer.Close(); 
    Response.ContentType = "pdf/application"; 
    Response.AddHeader("content-disposition", 
    "attachment;filename=First PDF document.pdf"); 
    Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); 
} 
に関連する任意のロジックを持っていますか

here are some samples which ll help you on this....

これはまさにあなたを探していることはできませんが、それは

+0

あなたの答えをありがとうが、私の懸念は、pdfを書くのではなく、pdfからパラグラフとしてテキストを読むことです。 –

関連する問題