我正在使用pdfbox从pdf文件中提取文本。我阅读pdf文件如下
PDFParser parser = null;
String text = "";
PDFTextStripper stripper = null;
PDDocument pdoc = null;
COSDocument cdoc = null;
File file = new File("path");
try {
parser = new PDFParser(new FileInputStream(file));
} catch (IOException e) {
e.printStackTrace();
}
try {
parser.parse();
cdoc = parser.getDocument();
stripper = new PDFTextStripper();
pdoc = new PDDocument(cdoc);
stripper.setStartPage(1);
stripper.setEndPage(2);
text = stripper.getText(pdoc);
System.out.println(text);
} catch (IOException e) {
e.printStackTrace();
}
但我想要做的是逐行阅读文档并从每一行中提取文本属性,如粗体,斜体。 如何使用pdfbox库
实现这一目标答案 0 :(得分:3)
从每一行中提取粗体,斜体等文本属性。如何使用pdfbox库
实现这一目标
粗体和斜体等属性不是PDF中的第一类属性。
使用实现粗体或斜体以PDF格式书写
不同的字体(这是更好的方式);在这种情况下,可以尝试通过
确定字体是粗体还是斜体查看字体名称:它可能包含子字符串"粗体","斜体","倾斜" ...
查看字体的某些可选属性,例如字体重量...
检查嵌入字体文件。
这些方法都不是万无一失的;或
使用与非粗体,非斜体文本相同的字体,但使用特殊技术使它们显示为粗体或斜体(也就是穷人的粗体),例如
不仅可以填充字形轮廓,还可以沿着它绘制更粗的线条,以获得大胆的印象,
两次绘制字形,第二次略微移位,也是为了大胆的印象,
使用文字或转换矩阵倾斜字母以显示斜体。
通过相应地使用此类测试覆盖PDFTextStripper
方法,您可以在PDF文本提取期间获得相当好的样式猜测率。