我使用此代碼測試一個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<XWPFParagraph> 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();
}
}
}
當我使用中文格式的默認字體大小時,代碼無法提取字體大小信息並返回-1。當我將文檔字體大小設置爲數字格式時,代碼可以獲得正確的字體大小。 當我使用任何其他字體,我真的可以得到字體信息。但是不管我如何將字體設置爲Calibri,代碼總是作爲字體提取結果返回null。 這可能會說明我上面所說的。 – 0x1309201