2013-05-22 2 views
0

Lors de l'extraction de contenu à partir de PDF en utilisant la bibliothèque MuPDF, je reçois le nom de la police uniquement pas sa police.Comment une police est détectée comme étant en gras/italique/plain qui est utilisé en PDF

Est-ce que je devine (par exemple .bold dans le nom de police mais pas la bonne manière) ou il y a un autre moyen de détecter que la police spécifique est Bold/Italic/Plain.

+0

Comment êtes-vous extraire les informations? – Orbling

+0

Utilisation de la bibliothèque open source mupdf. –

+0

La police porte un certain nombre de drapeaux, en plus de son nom, ce qui peut ou ne peut pas vous dire quelque chose de plus au sujet de la Les attributs de la police ne sont pas très fiables – KenS

Répondre

1
 i had used to itextsharp to extract font-family ,font color etc 

    public void Extract_inputpdf() 
     { 

      text_input_File = string.Empty; 

      StringBuilder sb_inputpdf = new StringBuilder(); 
      PdfReader reader_inputPdf = new PdfReader(path); //read PDF 
     for (int i = 0; i <=reader_inputPdf.NumberOfPages ; i++) 
      { 

       TextWithFont_inputPdf inputpdf = new TextWithFont_inputPdf(); 



       text_input_File = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader_inputPdf, i, inputpdf); 


       sb_inputpdf.Append(text_input_File); 





       input_pdf = sb_inputpdf.ToString(); 


      } 
      reader_inputPdf.Close(); 
      clear(); 

     } 

    public class TextWithFont_inputPdf : iTextSharp.text.pdf.parser.ITextExtractionStrategy 
     { 
     public void RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo) 
      { 

       string curFont = renderInfo.GetFont().PostscriptFontName; 

     string divide = curFont; 
       string[] fontnames = null; 

    //split the words from postscript if u want separate. it will be in this 


      } 
} 
    public string GetResultantText() 
     { 


      return result.ToString(); 
     } 
0

La spécification PDF contient des entrées qui vous permettent de spécifier le style d'une police. Cependant, malheureusement, dans le monde réel, vous trouverez souvent que ceux-ci sont absents.

Si la police est référencée plutôt qu'encastrée, cela signifie généralement que vous êtes bloqué avec le nom PostScript de la police. Cela nécessite quelques heuristiques mais normalement le nom fournit suffisamment d'indices quant au style. On dirait que c'est à peu près où vous êtes.

Si la police est incorporée, vous pouvez l'analyser et essayer de trouver des informations de style à partir du programme de police intégré. Si elle est sous-classée alors en théorie cette information pourrait être supprimée mais en général je ne pense pas qu'elle le sera. Cependant, l'analyse des polices TrueType/OpenType est ennuyeuse et vous ne pensez pas que cela en vaille la peine.

Je travaille sur le composant logiciel ABCpdf .NET afin que mes réponses puissent présenter des concepts basés sur ABCpdf. C'est juste ce que je sais. :-) »

Questions connexes