2013-05-22 3 views
0

При извлечении содержимого из PDF с использованием библиотеки MuPDF, я получаю только имя шрифта, а не его шрифт.Как определить шрифт полужирным шрифтом/курсивом/plain, который используется в PDF

Я угадываю (например, заголовок шрифтом, но не правильный путь), или есть какой-либо другой способ обнаружить, что конкретный шрифт выделен жирным шрифтом/курсивом/равным.

+0

Как вы извлекая информацию? – Orbling

+0

Использование библиотеки MUPDF с открытым исходным кодом. –

+0

Шрифт несет ряд флагов, в дополнение к имени, которое может или не может сказать вам что-то больше о font-size: – KenS

ответ

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

Спецификация PDF содержит записи, которые позволяют указать стиль шрифта. Однако, к сожалению, в реальном мире вы часто обнаружите, что они отсутствуют.

Если шрифт упоминается, а не внедрен, это обычно означает, что вы застряли с именем PostScript для шрифта. Это требует некоторой эвристики, но обычно имя дает достаточные сведения о стиле. Похоже, это довольно много, где вы.

Если шрифт встроен, вы можете его проанализировать и попытаться найти информацию о стиле из встроенной программы шрифтов. Если он подмножественно, то в теории эта информация может быть удалена, но в целом я не думаю, что это будет. Однако разбор шрифтов TrueType/OpenType скучен, и вы можете не чувствовать, что он того стоит.

Я работаю над программным компонентом ABCpdf .NET, поэтому в моих ответах могут содержаться концепции, основанные на ABCpdf. Это то, что я знаю. :-)»

Смежные вопросы