2013-06-14 3 views
6

est-il une logique pour obtenir le texte de paragraphe du fichier pdf en utilisant itextsharp? Je sais pdf ne supporte que la course de textes et c'est difficile de déterminer quelles séries de textes sont liés à quel paragraphe et aussi je sais qu'il n'y a pas de balises <p> ou d'autres balises pour déterminer le paragraphe en pdf..However j'ai essayé d'obtenir la coordonnée des courses de textes pour construire le paragraphe de ses coordonnées, mais sans chance :( mon extrait de code est ici:obtenir texte paragraphe de pdf en utilisant itextsharp

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

Est-ce que le corps ont une logique liée à cette question ??

+3

Est-ce votre PDF un PDF balisé? Si ce n'est pas le cas, il n'y a pas de moyen facile de déterminer quels extraits de texte appartiennent à quel paragraphe (mais vous l'avez déjà découvert). –

+0

@BrunoLowagie merci pour votre respone, PDF n'est pas étiqueté PDF..n'y a-t-il pas de solution pour extraire le paragraphe de Non Tagged PDF ??? –

+2

Aucune solution de preuve à 100%, simplement heuristique avec des taux d'échec plus petits ou plus grands. – mkl

Répondre

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....

Ce ne peut être exactement que vous cherchez, mais il peut vous aider ..

+0

merci pour votre réponse mais mon souci est de lire des textes en tant que paragraphe d'un pdf pour ne pas écrire pdf. –

Questions connexes