poi 获取的字体大小同html字体大小,我怎样才能获得更具体的字体信息使用poi XWPF API?当我使用一个Calibri字体文件进行测试时,我得到的fontName为null,字体大小为-1...

在尝试使用Apache POI从Word文档中提取字体信息时,遇到问题。对于TimesNewRoman字体,代码能够返回字体名称但无法获取字体大小。而对于Calibri字体,代码返回的fontName为null,字体大小为-1。当文档使用中文默认字体大小时,代码无法提取字体大小。然而,如果字体大小以数字形式设定,代码能正确获取。问题可能与字体类型或编码有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用此代码测试一个Times New Roman字体文件和一个Calibri字体文件。至于Times New Roman,代码可以返回字体名称而不是字体大小。至于Calibri,我无法获取字体名称或字体大小。我不知道发生了什么错误发生了......我怎样才能获得更具体的字体信息使用poi XWPF API?当我使用一个Calibri字体文件进行测试时,我得到的fontName为null,字体大小为-1

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.List;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import org.apache.poi.xwpf.usermodel.XWPFRun;

public class test1 {

public static void main(String[] args) {

File file = new File("F:\\workspace\\zExtractInformationTest2\\bold.docx");

XWPFDocument document;

try {

document = new XWPFDocument(new FileInputStream(file));

List paraList = document.getParagraphs();

for (int index = 0; index < paraList.size(); index++) {

XWPFParagraph para = paraList.get(index);

for (XWPFRun run : para.getRuns()) {

String font = run.getFontName();

int fontSize = run.getFontSize();

String text = run.text();

boolean isBold = run.isBold();

System.out.println("run: "+font+"\t"+fontSize+"\t"+text+"\t"+isBold);

}

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

EZ1gZ.jpg

+0

当我使用中文格式的默认字体大小时,代码无法提取字体大小信息并返回-1。当我将文档字体大小设置为数字格式时,代码可以获得正确的字体大小。 当我使用任何其他字体,我真的可以得到字体信息。但是不管我如何将字体设置为Calibri,代码总是作为字体提取结果返回null。 这可能会说明我上面所说的。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值