我想使用Apache POI创建一个docx文件.
我想设置一个运行的背景颜色(即一个单词或段落的某些部分).
我怎样才能做到这一点?
是否有可能通过Apache POI.
提前致谢
Word为此提供了两种可能性.在运行中可能存在背景颜色.但也有所谓的突出显示设置.
随着XWPF这两种可能性都只能使用基础对象CTShd和CTHighlight.但是,虽然CTShd出厂时是默认的poi-ooxml-schemas-3.13-...jar,CTHighlight但完全ooxml-schemas-1.3.jar需要,如https://poi.apache.org/faq.html#faq-N10025中所述.
例:
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
/*
To
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
the fully ooxml-schemas-1.3.jar is needed as mentioned in https://poi.apache.org/faq.html#faq-N10025
*/
public class WordRunWithBGColor {
public static void main(String[] args) throws Exception {
XWPFDocument doc= new XWPFDocument();
XWPFParagraph paragraph = doc.createParagraph();
XWPFRun run=paragraph.createRun();
run.setText("This is text with ");
run=paragraph.createRun();
run.setText("background color");
CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
cTShd.setVal(STShd.CLEAR);
cTShd.setColor("auto");
cTShd.setFill("00FFFF");
run=paragraph.createRun();
run.setText(" and this is ");
run=paragraph.createRun();
run.setText("highlighted");
run.getCTR().addNewRPr().addNewHighlight().setVal(STHighlightColor.YELLOW);
run=paragraph.createRun();
run.setText(" text.");
doc.write(new FileOutputStream("WordRunWithBGColor.docx"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3254 次 |
| 最近记录: |