2017-05-15 26 views
2

私はdocx形式のMS-Word文書を持っています。私は各段落または行のフォントサイズを取得したい。私は同様のアプローチを使用して見てみましたhere docxファイルのPOIのドキュメントページでは、1つを見つけることができませんでした。apx POIを使用してdocxドキュメントから段落のフォントサイズを取得するには?

私はこのアプローチを試みましたが、-1 as font sizefont-name as nullを与えています。

File file = new File(fileName); 
FileInputStream fis = new FileInputStream(file.getAbsolutePath()); 

XWPFDocument document = new XWPFDocument(fis); 
List<XWPFParagraph> paragraphs = document.getParagraphs(); 

System.out.println("Total no of paragraph in Docx : "+paragraphs.size()); 
for (XWPFParagraph para : paragraphs) { 
    XWPFStyle style = document.getStyles().getStyle(para.getStyleID()); 
    System.out.println(para.getText()); 
    int pos = 0; 
    for (XWPFRun run : para.getRuns()) { 
     System.out.println("Current run IsBold : " + run.isBold()); 
     System.out.println("Current run IsItalic : " + run.isItalic()); 
     System.out.println("Current Font Size : " + run.getFontSize()); 
     System.out.println("Current Font Name : " + run.getFontName()); 
    } 
    } 
    fis.close(); 

アップデート:私はthisを見つけましたが、フォントサイズを取得するために管理することができませんでした。

ありがとうございます。フォントサイズについては

+1

をほとんどの場合、実行は、明示的なフォントの詳細が設定されていない、と段落のスタイルに戻って落ちていることを意味します。パラグラフからフォントを取り除こうとするとどうなりますか? – Gagravarr

+0

あなたはフォントの詳細を取得するために私にお勧めしたいと思いますか?任意の図書館またはその他のアプローチ? –

+0

私はまったく同じ問題を抱えています。見つけたら、回答を更新してください。 –

答えて

0

、あなたは以下のようにコーディングすることができます。

int fontSize = run.getFontSize(); 
if (fontSize == -1){ 
    System.out.println(document.getStyles().getDefaultRunStyle().getFontSize()) 
}else{ 
    System.out.println(run.getFontSize()); 
} 
関連する問題