如何使用PDFBox使用页眉字体大小阅读PDF部分?



我正在尝试阅读PDF文档,我需要使用标题字体大小或字体和字体大小按部分分隔它们,我目前正在根据这篇文章的答案实现它。但是由于我的 PDF 具有相同的标题和副标题字体,我需要修改代码,以便它根据字体大小或两者进行搜索。

List<TextSectionDefinition> sectionDefinitions = Arrays.asList(
new TextSectionDefinition("Section", x -> x.get(0).get(0).getFont().getName().contains("Calibri,Bold"), TextSectionDefinition.MultiLine.multiLineHeader, true)
);
document.getClass();
PDFTextSectionStripper stripper = new PDFTextSectionStripper(sectionDefinitions);
stripper.getText(document);
System.out.println("Sections:");
List<String> texts = new ArrayList<>();
for (TextSection textSection : stripper.getSections()) {
String text = textSection.toString();
System.out.println(text);
texts.add(text);
}
return ResponseEntity.ok(texts);

如果我尝试使用 getFontSize 而不是 getFont,我的问题就源于它不允许输入任何参数,在我的例子中是 16(字体大小(。

在您引用的答案中,有这样的文本部分定义:

new TextSectionDefinition("Titel",
x->x.get(0).get(0).getFont().getName().contains("CMBX12"),
MultiLine.singleLine,
false)

我假设你的话

如果我尝试使用 getFontSize 而不是 getFont,它不允许输入任何参数,在我的例子中是 16

指示您要交换第二个参数中的 lambda 表达式

x->x.get(0).get(0).getFont().getName().contains("CMBX12")

通过测试字体大小的东西。因此,您是否尝试过将其替换为

x->x.get(0).get(0).getFontSize() == 16

x->x.get(0).get(0).getFontSizeInPt() == 16

x-> {
float size = x.get(0).get(0).getFontSizeInPt();
return size > 15 && size < 17;
}

还?

最新更新