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