PDF:提取与字体相关的文本(Linux)

时间:2018-08-23 21:47:51

标签: pdf fonts text-extraction

我要解决的一般问题是确定大量PDF中的多少文本与不同的字体相关联。我知道我可以使用pdftotext和带有pdffonts的字体信息从PDF中提取文本,但是我不知道如何将它们链接在一起。我要处理10万多个PDF,因此需要我可以进行编程的东西(而且我不介意商业解决方案)。

2 个答案:

答案 0 :(得分:0)

PDFTron PDFNet SDK可以提取所有图形操作,包括文本对象,包括所使用字体的链接。

从ElementReader示例开始,您可以获得每个文本元素的Font。 https://www.pdftron.com/documentation/samples?platforms=windows#elementreader https://www.pdftron.com/api/PDFNet/?topic=html/T_pdftron_PDF_Font.htm

答案 1 :(得分:0)

我公司出售的产品Adobe PDF Library可以做到。

这是示例代码的一部分:

// This callback function is called fpr each PDWord object.
ACCB1 ASBool ACCB2 WordEnumProc(PDWordFinder wfObj, PDWord pdWord, ASInt32 pgNum, void* clientData)
{
    char str[128];
    char fontname[100];

    // get word text
    PDWordGetString(pdWord, str, sizeof(str));

    // get the font name
    PDStyle style = PDWordGetNthCharStyle(wfObj, pdWord, 0);
    PDFont wordFont = PDStyleGetFont(style);
    PDFontGetName(wordFont, fontname, sizeof(fontname));

    printf("%s  [%s]\n", str, fontname);

    return true;
}

这是输出示例:

...
Chapter  [Arial,Bold]
2:  [Arial,Bold]
Overview  [Arial,Bold]
27  [Arial]
...
This  [TimesNewRoman]
book  [TimesNewRoman]
describes  [TimesNewRoman]
the  [TimesNewRoman]
Portable  [TimesNewRoman]
Document  [TimesNewRoman]
Format  [TimesNewRoman]
...