2013-06-14 28 views
6

itextsharp kullanarak pdf dosyasından paragraf metni almak için herhangi bir mantık var? Biliyorum pdf sadece metinlerin çalışmasını destekliyor ve hangi metinlerin hangi metinlerin hangi paragrafla ilişkili olduğunu belirlemek zor pdf'de paragrafı belirlemek için herhangi bir <p> etiketi ya da diğer etiketler bulunmadığı halde ... Ancak, koordine paragraf oluşturmak için metinlerin koordinatlarını koordine etmeye çalıştım ancak şanssız :(. kod snippet'ım burada:itextsharp kullanarak pdf'den paragraf paragrafı alın

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; 
    } 

herhangi vücut bu konuda ??

+3

PDF Etiketli PDF mı .. size yardımcı olabilir? Değilse, hangi metin parçacıklarının hangi paragrafa ait olduğunu belirlemenin kolay bir yolu yoktur (ancak bunu zaten keşfettiniz). –

+0

@BrunoLowagie respone için thanx, PDF PDF olarak etiketlenmedi ... Not Etiketli PDF'den paragraf çıkarmak için herhangi bir çözüm yok ??? –

+2

% 100 kanıt çözümleri yoktur, sadece daha küçük veya daha büyük hata oranlarına sahip sezgisel çözümler. @mkl için – mkl

cevap

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); 
} 
ilgili herhangi mantığı var mı

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

Bu senin arayan tam olmayabilir, ama

+0

Cevabınız için teşekkürler, ancak kaygılarımı pdf yazmamak için pdf'den paragraf olarak okumak. –

İlgili konular