2013-06-14 6 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에서 단락으로 텍스트를 읽는 것입니다. –