是否可以在一次运行中将粗体设置为 true 和 false?
我现在有以下代码:
XWPFParagraph paragraph = nieuwDocument.createParagraph();
XWPFRun run = paragraph.createRun();
run.setBold(true);
for (XWPFParagraph paragraphs: paragraphList)
{
if(paragraphs.getStyle() !=null)
{
if(paragraphs.getStyle().equals(kop) || paragraphs.getStyle().equals(tussenkop))
{
run.addBreak();
run.setText(paragraphs.getText());
run.addCarriageReturn();
}
if(paragraphs.getNumFmt() != null)
{
//run.setBold(false)
run.addTab();
run.setText(paragraphs.getText());
run.addCarriageReturn();
}
}
我尝试将 run.setBold(false)
添加到 if(paragraphs.getNumFmt() != null)
语句中,但随后所有文本再次变平。
我希望最后一个 if
语句的文本是扁平的,而第一个 if
语句的文本是粗体。
更新(有 2 次不同的运行)
如果我创建两次运行,我的文本顺序就会出错。
XWPFRun run = paragraph.createRun();
run.setBold(true);
XWPFRun runTwo = paragraph.createRun();
runTwo.setBold(false);
for (XWPFParagraph paragraphs: paragraphList)
{
if(paragraphs.getStyle() !=null)
{
if(paragraphs.getStyle().equals(kop) || paragraphs.getStyle().equals(tussenkop))
{
run.addBreak();
run.setText(paragraphs.getText());
run.addCarriageReturn();
}
if(paragraphs.getNumFmt() != null)
{
runTwo.addTab();
runTwo.setText(paragraphs.getText());
runTwo.addCarriageReturn();
}
Wrong order (second code with two runs
希望这能让它更清楚
最佳答案
我有一个解决方案给你。它有点硬编码,您应该明白了!
public static void textStyledInbetween(XWPFDocument document, String text1, String style1, String text2, String style2, String text3, String style3) {
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run1 = paragraph.createRun();
XWPFRun run2 = paragraph.createRun();
XWPFRun run3 = paragraph.createRun();
paragraph.setAlignment(ParagraphAlignment.BOTH);
run1.setFontSize(12);
run1.setFontFamily("Arial");
run2.setFontSize(12);
run2.setFontFamily("Arial");
run3.setFontSize(12);
run3.setFontFamily("Arial");
if (text1 != null) {
if (style1 != null) {
if (style1.equals("Bold")) {
run1.setBold(true);
} else if (style1.equals("Italian")) {
run1.setItalic(true);
}
}
run1.setText(text1);
run1.setBold(false);
run1.setItalic(false);
}
if (text2 != null) {
if (style2 != null) {
if (style2.equals("Bold")) {
run2.setBold(true);
} else if (style2.equals("Italian")) {
run2.setItalic(true);
}
}
run2.setText(text2);
}
if (text3 != null) {
if (style3 != null) {
if (style3.equals("Bold")) {
run3.setBold(true);
} else if (style3.equals("Italian")) {
run3.setItalic(true);
}
}
run3.setText(text3);
}
}
关于java - 使用 XWPFRun 一次运行粗体和平面文本,写入 word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46544319/