2016-05-08 11 views
0

私はHWPFでApache POIを使用して生成したドキュメント(.doc)を持っており、フォントタイプを変更したいと思います。私はそれを変える場所が各段落の中で動くキャラクターになるだろうと推測しています。CharacterRunのフォントタイプを変更

CharacterRunには.setBold().setColor().getFontName()などのメソッドがありますが、見つけられたフォントを設定する方法はありません。

XWPFには.setFontFamily()がありますが、HWPFで同じことをする方法はありますか?

Range after = doc.getRange(); 
int numParagraphs = after.numParagraphs(); 

for(int i = 0; i < numParagraphs; i++){ 
    Paragraph paragraph = after.getParagraph(i); 

    int charRuns = paragraph.numCharacterRuns(); 
    for(int j = 0; j < charRuns; j++){ 
     int size = 9; 
     CharacterRun run = paragraph.getCharacterRun(j); 
     run.setFontSize(size*2); // In half sizes. 
    } 
} 

答えて

1

CharacterRun上のフォントの種類を変更するための方法は、文書の埋め込みフォントのいずれかにフォントを変更する.setFtcAscii()です。私が使っていた文書は、以下のフォントテーブルを持っていました。

╔═══╦═════════════════╗ 
║ ║ Font Family  ║ 
╠═══╬═════════════════╣ 
║ 0 ║ Times New Roman ║ 
║ 1 ║ Symbol   ║ 
║ 2 ║ Arial   ║ 
║ 3 ║ Calibri   ║ 
║ 4 ║ Courier New  ║ 
║ 5 ║ Cambria Math ║ 
╚═══╩═════════════════╝ 

私は私が使用しCourier Newにフォントを変更するために必要な:

run.setFtcAscii(4); 

- 私は、forループのフォントを設定して作成したので

他の文書が異なるフォントテーブルを持っていることインデックスを作成してからフォント名を印刷する.getFontName()

さらに、run.setFtcOther(int)はと同じことを実行しました


を参照してください:(0x4A4F)

https://msdn.microsoft.com/en-us/library/dd947480(v=office.12).aspx

関連する問題