我一直在尝试使用iText库提取pdf文档中每个单词的属性(字体,字体大小,颜色等) . 我可以从每个页面中提取文本,但不提取属性 . 此外,我没有找到任何可以提供相同的东西 . 请帮我 .
我不是一个Java人,所以我不能给你工作代码,但希望我可以95%的方式得到你 .
首先,您需要创建一个实现接口的类com.itextpdf.text.pdf.parser.TextExtractionStrategy
然后,您可以将此类的实例作为第三个参数传递给:
PdfTextExtractor.getTextFromPage(PdfReader reader, int pageNumber, TextExtractionStrategy strategy)
该接口的一种方法是renderText,它会被处理的每个文本块调用 . 当它被调用时,传递TextRenderInfo,其中有一个名为getFont的方法,它可以为您提供所需的内容 . 将其内容存储在某种缓冲区中,在调用 getTextFromPage 之后,您可以检查该缓冲区以查看每种字体 . 如果您想查看实现该接口的示例,请在线查找SimpleTextExtractionStrategy的代码 . 否则here's a C# version几乎可以满足您的需求 .
getTextFromPage
1 回答
我不是一个Java人,所以我不能给你工作代码,但希望我可以95%的方式得到你 .
首先,您需要创建一个实现接口的类com.itextpdf.text.pdf.parser.TextExtractionStrategy
然后,您可以将此类的实例作为第三个参数传递给:
PdfTextExtractor.getTextFromPage(PdfReader reader, int pageNumber, TextExtractionStrategy strategy)
该接口的一种方法是renderText,它会被处理的每个文本块调用 . 当它被调用时,传递TextRenderInfo,其中有一个名为getFont的方法,它可以为您提供所需的内容 . 将其内容存储在某种缓冲区中,在调用
getTextFromPage
之后,您可以检查该缓冲区以查看每种字体 . 如果您想查看实现该接口的示例,请在线查找SimpleTextExtractionStrategy的代码 . 否则here's a C# version几乎可以满足您的需求 .