2013-07-11 12 views
6

私は、フォントが2の単語の文書に何かが存在するかどうかを調べようとしています。しかし、これはできませんでした。はじめに、私は、1行と7語しかないサンプルワード文書の各単語のフォントを読み込もうとしました。私は正しい結果を得ていない。POIを使用して単語文書の各単語のフォントサイズを読み取る方法は?

HWPFDocument doc = new HWPFDocument (fileStream); 
WordExtractor we = new WordExtractor(doc); 
Range range = doc.getRange() 
String[] paragraphs = we.getParagraphText(); 
for (int i = 0; i < paragraphs.length; i++) { 
    Paragraph pr = range.getParagraph(i); 
    int k = 0 
    while (true) { 
    CharacterRun run = pr.getCharacterRun(k++); 
    System.out.println("Color: " + run.getColor()); 
    System.out.println("Font: " + run.getFontName()); 
    System.out.println("Font Size: " + run.getFontSize()); 
    if (run.getEndOffSet() == pr.getEndOffSet()) 
     break; 
    } 
} 

しかし、上記のコードは、常にフォントサイズを倍増:

は、ここに私のコードです。すなわち、文書内の実際のフォントサイズが12の場合は24を出力し、実際のフォントが8の場合は16を出力します。

これはワードドキュメントからフォントサイズを読み取る正しい方法ですか?

+0

あなたは[このWord-VBAロジック](http://stackoverflow.com/a/5160803/2143262)(可能な場合はjava)を使用しようとする可能性があります... –

答えて

2

はい、これは正しい方法です。測定は半分の点で行われます。

docxファイルで

、あなたのようなものがあるだろう:

<w:rPr> 

    <w:sz w:val="28" /> 

</w:rPr> 

ECMA 376 spec on @szをHWPFがサポートするバイナリドキュメント形式、同じST_HpsMeasure (Measurement in Half-Points)

そのような単位を定義します。 [MS-DOC]を見ると、半角でテキストのサイズも指定されています。

関連する問題