如何确定 pdf 文档中单词的字体系列和字体大小?
Posted
技术标签:
【中文标题】如何确定 pdf 文档中单词的字体系列和字体大小?【英文标题】:How do I figure out the font family and the font size of the words in a pdf document? 【发布时间】:2011-02-16 16:28:37 【问题描述】:如何确定 pdf 文档中文字的字体系列和字体大小?我们实际上是在尝试使用 iText 以编程方式生成 pdf 文档,但我们不确定如何找出需要生成的原始文档的字体系列和字体大小。文档属性似乎不包含此信息
【问题讨论】:
该问题的解决方案tex.stackexchange.com/q/1401/164050 对我也很有用。 【参考方案1】:字体存储在目录中(我想在字体类型的子目录中)。如果您将 pdf 作为文本文件打开,您应该能够找到目录条目(它们分别以“>”开头和结尾。
在一个简单的 pdf 文件中,我发现了以下内容:
<</Type/Font/BaseFont/Helvetica-Bold/Subtype/Type1/Encoding/WinAnsiEncoding>>
因此搜索前缀应该对您有所帮助(在某些 pdf 文件中, 组件,但 '/Type /Font' 应该没问题)。
当然,这是一个手动过程,而您可能更喜欢自动过程。
另一方面,我们有时使用identifont 或what the font 来查找给我们带来问题的不常见字体(徽标字体)。
问候 纪尧姆
编辑:以下代码将查找页面中的所有字体。简而言之,您在每个页面的字典中搜索子字典“资源”,然后搜索子字典“字体”。后面的每个条目都是一个字体字典,描述一种字体。
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());
名称(以下代码中的变量“名称”)是文本中用于更改字体的名称。在 PDF 中,您必须在文本旁边找到它。下面的数字是尺寸。以这里为例,它是 12 号的。(对不起,这部分仍然没有代码)。
BT
/F13 12 Tf
288 720 Td
the text to find Tj
ET
【讨论】:
在这里查看 PDF,我总是看到 /TT1 1 Tf 是一个相当简单的纯文本 PDF,但字体比大小 1 大很多。我猜你也必须结合之前的转换,但我还没有找到一个好的方法来做到这一点,除了实现渲染器。【参考方案2】:根据 PDF 的不同,如果没有概述,您可以在 Adobe Illustrator 中打开它,双击文本并选择其中一些以查看它的字体系列、大小、等等
如果文本有轮廓,则使用 PATRY 建议的在线工具之一找出字体。
祝你好运
【讨论】:
【参考方案3】:如果您有 Adobe Acrobat,您可以看到里面的字体并检查对象和文本流。我在http://pdf.jpedal.org/java-pdf-blog/bid/10479/Viewing-PDF-objects写了一篇关于此的博客文章
【讨论】:
以上是关于如何确定 pdf 文档中单词的字体系列和字体大小?的主要内容,如果未能解决你的问题,请参考以下文章