我正在构建一个有 8 列的行,并且需要在 apache poi WORD 的单个单元格中创建指数数据(数字)而不使用 para.break 。
问问题
41 次
1 回答
1
如果内容(2)
是上标,那么使用 . 有两种可能Microsoft Word
。要么真正上标对齐,要么将文本位置设置为远离文本基线。对于两者都(2)
必须在它自己的文本运行中。
使用具有VerticalAlign的XWPFRun.setSubscript可以实现上标对齐。.SUPERSCRIPT
可以使用XWPFRun.setTextPosition设置文本位置,其中int val
是测量单位半 pt。
例子:
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.*;
public class CreateWordSuperScript {
public static void main(String[] args) throws Exception {
XWPFDocument document= new XWPFDocument();
XWPFParagraph paragraph;
XWPFRun run;
paragraph = document.createParagraph();
run = paragraph.createRun();
run.setText("6 ");
run=paragraph.createRun();
run.setText("(2)");
run.setSubscript(VerticalAlign.SUPERSCRIPT); // superscript (2)
paragraph = document.createParagraph();
run=paragraph.createRun();
run.setText("6 ");
run=paragraph.createRun();
run.setText("(2)");
run.setTextPosition(11); // (2) position = baseline + 11 half pt ~ 5.5 pt
FileOutputStream out = new FileOutputStream("word.docx");
document.write(out);
out.close();
document.close();
}
}
于 2019-11-04T14:36:20.827 回答