6

Word文書にフォント2のものが存在するかどうかを調べようとしていますが、これを行うことができませんでした。まず、1 行 7 語しかないサンプル Word 文書の各単語のフォントを読み取ろうとしました。正しい結果が得られません。

これが私のコードです:

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;
  }
}

ただし、上記のコードは常にフォント サイズを 2 倍にします。つまり、ドキュメントの実際のフォント サイズが 12 の場合は 24 を出力し、実際のフォント サイズが 8 の場合は 16 を出力します。

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

4

1 に答える 1

2

はい、それが正しい方法です。測定は半分のポイントです。

docx では、次のようなものがあります。

<w:rPr>

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

</w:rPr>

@sz のECMA 376 仕様では、単位がST_HpsMeasure (半点単位の測定)として定義されています。

HWPF がサポートするバイナリ doc 形式と同じです。[MS-DOC]を見ると、テキストのサイズもハーフポイントで指定されていることがわかります。

于 2013-07-15T10:56:42.773 に答える