我有一个使用HWPF的Apache POI生成的文档(.doc),我想更改字体类型。我猜想更改的地方应该是在每个段落中的字符上。
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.
}
}
更改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)
作用与run.setFtcAscii(int)
参见:(0x4A4F)
https://msdn.microsoft.com/zh-CN/library/dd947480(v=office.12).aspx
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句