我使用此代码测试一个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();
}
}
}
+0
当我使用中文格式的默认字体大小时,代码无法提取字体大小信息并返回-1。当我将文档字体大小设置为数字格式时,代码可以获得正确的字体大小。 当我使用任何其他字体,我真的可以得到字体信息。但是不管我如何将字体设置为Calibri,代码总是作为字体提取结果返回null。 这可能会说明我上面所说的。 –