如何计算pdf文档中单词的字体系列和字体大小?

如何计算pdf文档中单词的字体系列和字体大小?,pdf,fonts,adobe,itext,Pdf,Fonts,Adobe,Itext,如何计算pdf文档中单词的字体系列和字体大小?实际上,我们正在尝试使用iText以编程方式生成pdf文档,但我们不确定如何找到需要生成的原始文档的字体系列和字体大小。文档属性似乎不包含此信息字体存储在目录中(我假设是在字体类型的子目录中)。如果以文本文件形式打开pdf,则应该能够找到目录条目(它们分别以“”开头和结尾) 在一个简单的pdf文件中,我发现了以下内容: <</Type/Font/BaseFont/Helvetica-Bold/Subtype/Type1/Encoding/

如何计算pdf文档中单词的字体系列和字体大小?实际上,我们正在尝试使用iText以编程方式生成pdf文档,但我们不确定如何找到需要生成的原始文档的字体系列和字体大小。文档属性似乎不包含此信息

字体存储在目录中(我假设是在字体类型的子目录中)。如果以文本文件形式打开pdf,则应该能够找到目录条目(它们分别以“”开头和结尾)

在一个简单的pdf文件中,我发现了以下内容:

<</Type/Font/BaseFont/Helvetica-Bold/Subtype/Type1/Encoding/WinAnsiEncoding>>

根据PDF格式的不同,如果尚未对其进行概述,您可以在Adobe Illustrator中打开它,双击文本并选择部分文本以查看其字体系列、大小等

如果文本有轮廓,则使用PATRY建议的在线工具之一查找字体


祝你好运

如果你有Adobe Acrobat,你可以看到里面的字体并检查对象和文本流。我在这里写了一篇博客文章,查看PDF,我总是看到/TT1 1 Tf是一个非常简单的纯文本PDF,但字体比大小1大了一点。我猜你还必须将转换合并到这一点,但除了实现渲染器之外,我还没有找到一个好方法来实现这一点。
 PdfReader reader = new PdfReader(
   new FileInputStream(new File("file.pdf")));
 int nbmax = reader.getNumberOfPages();
 System.out.println("nb pages " + nbmax);

 for (int i = 1; i <= nbmax; i++) {
    System.out.println("----------------------------------------");
    System.out.println("Page " + i);
    PdfDictionary dico = reader.getPageN(i);
    PdfDictionary ressource = dico.getAsDict(PdfName.RESOURCES);
    PdfDictionary font = ressource.getAsDict(PdfName.FONT);
    // we got the page fonts
    Set keys = font.getKeys();
    Iterator it = keys.iterator();
    while (it.hasNext()) {
       PdfName name = (PdfName) it.next();
       PdfDictionary fontdict = font.getAsDict(name);
       PdfObject typeFont = fontdict.getDirectObject(PdfName.SUBTYPE);
       PdfObject baseFont = fontdict.getDirectObject(PdfName.BASEFONT);               
       System.out.println(baseFont.toString());              
    }
 }
BT 
/F13  12  Tf 
288  720  Td 
the text to find  Tj 
ET