0

私はdocx4jと、パーツリスト用に構築した非常に便利なwebappを使用しています: http://webapp.docx4java.org/OnlineDemo/PartsList.html

5 語のサンプル文書があります。最初の 4 つはフォント サイズ 12 で、最後の 4 つはフォント サイズ 8 です。

ドキュメントで使用されているさまざまなフォント サイズをすべて読みたいと思います。したがって、この場合: 12 と 8

サンプル ドキュメントを webapp にアップロードしました。この情報は に保存されると思いますが、xml には表示されず、document.xml表示されるだけなのでわかり16ません。24また、この情報を抽出する方法もわかりません。

質問

  • docx4jで単語コンテンツのフォントサイズを抽出するにはどうすればよいですか?

  • 各単語のフォントの色と単語文書全体の背景色を抽出するにはどうすればよいですか?

4

1 に答える 1

2

実行時にフォント サイズが設定されておらず、スタイルが使用されている場合は、スタイルの階層を確認する必要があります。そこに設定されていない場合は、デフォルトに戻ります。

ECMA 4ed Part 1 で 17.7.2 (スタイル階層) に記載されているように:

このプロセスは次のように説明できます。

  • まず、ドキュメントのデフォルトがドキュメント内のすべてのランと段落に適用されます。
  • 次に、表ごとに指定された条件付き書式の包含と除外に従って、表スタイル プロパティがドキュメント内の各表に適用されます。
  • 次に、番号付けスタイルで書式設定された各段落に、番号付きアイテムと段落のプロパティが適用されます。
  • 次に、段落スタイルで定義されているように、段落とランのプロパティが各段落に適用されます。
  • 次に、特定の文字スタイルが適用された各ランにラン プロパティが適用されます。
  • 最後に、直接書式設定 (スタイルからではない段落または実行のプロパティ) を適用します。この直接書式設定に番号付けが含まれている場合、その番号付け + 関連する段落プロパティが適用されます。

rFonts 要素 (§17.3.2.26) の値が使用できないフォントを参照している場合、アプリケーションは、§17.8.2 で定義されているフォント置換と呼ばれるプロセスを介して、適切な代替フォントを決定します。

docx4j はこのようなことを行います - たとえば、https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/model/PropertyResolver.javaの 430 行目と ff を参照してください。

同様の原則がフォントの色にも適用されます。

ここでは、 google traversalutil と言う以外に、ドキュメントを単語ごとに (または実行ごとに) 反復処理する方法については説明しません。

実行時にフォント サイズを明示的に設定する例

                <w:r>
                    <w:rPr>
                        <w:sz w:val="36"/>
                    </w:rPr>
                    <w:t>this is 18 points</w:t>
                </w:r>

これは、Microsoft Word または docx4j を使用して設定できます。docx4j でそれを行う方法を確認するには、webapp を使用してサンプル docx からコードを生成できますが、本質は次のとおりです。

    org.docx4j.wml.R  yourRun;
    yourRun.getRPr().setSz(an HpsMeasure);
于 2013-07-17T11:41:05.620 に答える