gpt4 book ai didi

java - iText - 获取文本段的字体大小和系列

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:37 53 4
gpt4 key购买 nike

我目前正在尝试从 PDF 文件中自动提取重要的关键字。我能够从 PDF 文档中获取文本信息。但现在我需要知道,这些关键字有哪些字体大小和字体系列。

下面的代码我已经有了:

主要

public static void main(String[] args) throws IOException {
String src = "SEM_081145.pdf";

PdfReader reader = new PdfReader(src);

SemTextExtractionStrategy semTextExtractionStrategy = new SemTextExtractionStrategy();

PrintWriter out = new PrintWriter(new FileOutputStream(src + ".txt"));
Rectangle rect = new Rectangle(70, 80, 490, 580);
RenderFilter filter = new RegionTextRenderFilter(rect);

for (int i = 1; i <= reader.getNumberOfPages(); i++) {
// strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
out.println(PdfTextExtractor.getTextFromPage(reader, i, semTextExtractionStrategy));
}
out.flush();
out.close();
}

我已经实现了 TextExtraction 策略 SemTextExtractionStrategy,如下所示:

public class SemTextExtractionStrategy implements TextExtractionStrategy {

private String text;

@Override
public void beginTextBlock() {
}

@Override
public void renderText(TextRenderInfo renderInfo) {
text = renderInfo.getText();

System.out.println(renderInfo.getFont().getFontType());

System.out.print(text);
}

@Override
public void endTextBlock() {
}

@Override
public void renderImage(ImageRenderInfo renderInfo) {
}

@Override
public String getResultantText() {
return text;
}
}

我可以获取 FontType,但没有获取字体大小的方法。是否有其他方法或如何获取当前文本段的字体大小?

或者是否有任何其他库可以从 TextSegments 中提取字体大小?我已经看过 PDFBox 和 PDFTextStream。 Aspose 的 PDF 共享软件库可以完美地完成这项工作。但是它非常昂贵,我需要使用一个开源项目。

最佳答案

感谢 Alexis,我可以将他的 C# 解决方案转换为 Java 代码:

text = renderInfo.getText();

Vector curBaseline = renderInfo.getBaseline().getStartPoint();
Vector topRight = renderInfo.getAscentLine().getEndPoint();

Rectangle rect = new Rectangle(curBaseline.get(0), curBaseline.get(1), topRight.get(0), topRight.get(1));
float curFontSize = rect.getHeight();

关于java - iText - 获取文本段的字体大小和系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879336/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com