java中opi类的说明

import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.math.BigInteger;  
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;  
  
import org.apache.commons.lang3.StringUtils;  
import org.apache.poi.POIXMLDocument;  
import org.apache.poi.openxml4j.opc.OPCPackage;  
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;  
import org.apache.poi.xwpf.usermodel.BodyElementType;  
import org.apache.poi.xwpf.usermodel.Borders;  
import org.apache.poi.xwpf.usermodel.BreakType;  
import org.apache.poi.xwpf.usermodel.Document;  
import org.apache.poi.xwpf.usermodel.IBodyElement;  
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;  
import org.apache.poi.xwpf.usermodel.TextAlignment;  
import org.apache.poi.xwpf.usermodel.VerticalAlign;  
import org.apache.poi.xwpf.usermodel.XWPFDocument;  
import org.apache.poi.xwpf.usermodel.XWPFParagraph;  
import org.apache.poi.xwpf.usermodel.XWPFRelation;  
import org.apache.poi.xwpf.usermodel.XWPFRun;  
import org.apache.poi.xwpf.usermodel.XWPFTable;  
import org.apache.poi.xwpf.usermodel.XWPFTableCell;  
import org.apache.poi.xwpf.usermodel.XWPFTableRow;  
import org.apache.xmlbeans.XmlException;  
import org.apache.xmlbeans.XmlToken;  
import org.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute;  
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;  
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;  
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBackground;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBorder;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTColor;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDecimalNumber;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTEm;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFldChar;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHMerge;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHeight;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHighlight;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHyperlink;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTJc;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTMarkupRange;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageBorders;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageMar;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPageSz;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTParaRPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSignedTwipsMeasure;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblBorders;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGrid;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGridCol;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTextScale;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTrPr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTUnderline;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVerticalJc;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STEm;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STFldCharType;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHdrFtr;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHeightRule;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STJc;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STPageOrientation;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalAlignRun;  
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;  
  
public class POI_Word2007_工具类_S3_Test {
     
  
    // 替换 复制 表格 段落  
  
    /*------------------------------------Word 插入书签---------------------------------------------------  */  
    /** 
     * @Description: 添加书签 
     */  
    public void addParagraphContentBookmarkBasicStyle(XWPFParagraph p,  
            String content, BigInteger markId, String bookMarkName,  
            boolean isInsert, boolean isNewLine, String fontFamily,  
            String fontSize, String colorVal, boolean isBlod,  
            boolean isUnderLine, String underLineColor,  
            STUnderline.Enum underStyle, boolean isItalic, boolean isStrike) {
     
        CTBookmark bookStart = p.getCTP().addNewBookmarkStart();  
        bookStart.setId(markId);  
        bookStart.setName(bookMarkName);  
  
        XWPFRun pRun = getOrAddParagraphFirstRun(p, isInsert, isNewLine);  
        setParagraphRunFontInfo(p, pRun, content, fontFamily, fontSize);  
        setParagraphTextStyleInfo(p, pRun, colorVal, isBlod, isUnderLine,  
                underLineColor, underStyle, isItalic, isStrike, false, false,  
                false, false, false, false, false, null, false, null, false,  
                null, null, null, 0, 0, 0);  
        CTMarkupRange bookEnd = p.getCTP().addNewBookmarkEnd();  
        bookEnd.setId(markId);  
  
    }  
  
    /** 
     * @Description: 添加书签 
     */  
    public void addParagraphContentBookmark(XWPFParagraph p, String content,  
            BigInteger markId, String bookMarkName, boolean isInsert,  
            boolean isNewLine, String fontFamily, String fontSize,  
            String colorVal, boolean isBlod, boolean isUnderLine,  
            String underLineColor, STUnderline.Enum underStyle,  
            boolean isItalic, boolean isStrike, boolean isDStrike,  
            boolean isShadow, boolean isVanish, boolean isEmboss,  
            boolean isImprint, boolean isOutline, boolean isEm,  
            STEm.Enum emType, boolean isHightLight,  
            STHighlightColor.Enum hightStyle, boolean isShd,  
            STShd.Enum shdStyle, String shdColor, VerticalAlign verticalAlign,  
            int position, int spacingValue, int indent) {
     
        CTBookmark bookStart = p.getCTP().addNewBookmarkStart();  
        bookStart.setId(markId);  
        bookStart.setName(bookMarkName);  
  
        XWPFRun pRun = getOrAddParagraphFirstRun(p, isInsert, isNewLine);  
        setParagraphRunFontInfo(p, pRun, content, fontFamily, fontSize);  
        setParagraphTextStyleInfo(p, pRun, colorVal, isBlod, isUnderLine,  
                underLineColor, underStyle, isItalic, isStrike, isDStrike,  
                isShadow, isVanish, isEmboss, isImprint, isOutline, isEm,  
                emType, isHightLight, hightStyle, isShd, shdStyle, shdColor,  
                verticalAlign, position, spacingValue, indent);  
  
        CTMarkupRange bookEnd = p.getCTP().addNewBookmarkEnd();  
        bookEnd.setId(markId);  
  
    }  
  
    /*------------------------------------Word 插入超链接---------------------------------------------------  */  
    /** 
     * @Description: 默认的超链接样式 
     */  
    public void addParagraphTextHyperlinkBasicStyle(XWPFParagraph paragraph,  
            String url, String text, String fontFamily, String fontSize,  
            String colorVal, boolean isBlod, boolean isItalic, boolean isStrike) {
     
        addParagraphTextHyperlink(paragraph, url, text, fontFamily, fontSize,  
                colorVal, isBlod, true, "0000FF", STUnderline.SINGLE, isItalic,  
                isStrike, false, false, false, false, false, false, false,  
                null, false, null, false, null, null, null, 0, 0, 0);  
    }  
  
    /** 
     * @Description: 设置超链接样式 
     */  
    public void addParagraphTextHyperlink(XWPFParagraph paragraph, String url,  
            String text, String fontFamily, String fontSize, String colorVal,  
            boolean isBlod, boolean isUnderLine, String underLineColor,  
            STUnderline.Enum underStyle, boolean isItalic, boolean isStrike,  
            boolean isDStrike, boolean isShadow, boolean isVanish,  
            boolean isEmboss, boolean isImprint, boolean isOutline,  
            boolean isEm, STEm.Enum emType, boolean isHightLight,  
            STHighlightColor.Enum hightStyle, boolean isShd,  
            STShd.Enum shdStyle, String shdColor,  
            STVerticalAlignRun.Enum verticalAlign, int position,  
            int spacingValue, int indent) {
     
        // Add the link as External relationship  
        String id = paragraph  
                .getDocument()  
                .getPackagePart()  
                .addExternalRelationship(url,  
                        XWPFRelation.HYPERLINK.getRelation()).getId();  
        // Append the link and bind it to the relationship  
        CTHyperlink cLink = paragraph.getCTP().addNewHyperlink();  
        cLink.setId(id);  
  
        // Create the linked text  
        CTText ctText = CTText.Factory.newInstance();  
        ctText.setStringValue(text);  
        CTR ctr = CTR.Factory.newInstance();  
        CTRPr rpr = ctr.addNewRPr();  
  
        if (StringUtils.isNotBlank(fontFamily)) {
     
            // 设置字体  
            CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr  
                    .addNewRFonts();  
            fonts.setAscii(fontFamily);  
            fonts.setEastAsia(fontFamily);  
            fonts.setHAnsi(fontFamily);  
        }  
        if (StringUtils.isNotBlank(fontSize)) {
     
            // 设置字体大小  
            CTHpsMeasure sz = rpr.isSetSz() ? rpr.getSz() : rpr.addNewSz();  
            sz.setVal(new BigInteger(fontSize));  
  
            CTHpsMeasure szCs = rpr.isSetSzCs() ? rpr.getSzCs() : rpr  
                    .addNewSzCs();  
            szCs.setVal(new BigInteger(fontSize));  
        }  
        // 设置超链接样式  
        // 字体颜色  
        if (StringUtils.isNotBlank(colorVal)) {
     
            CTColor color = CTColor.Factory.newInstance();  
            color.setVal(colorVal);  
            rpr.setColor(color);  
        }  
        // 加粗  
        if (isBlod) {
     
            CTOnOff bCtOnOff = rpr.addNewB();  
            bCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 下划线  
        if (isUnderLine) {
     
            CTUnderline udLine = rpr.addNewU();  
            udLine.setVal(underStyle);  
            udLine.setColor(underLineColor);  
        }  
        // 倾斜  
        if (isItalic) {
     
            CTOnOff iCtOnOff = rpr.addNewI();  
            iCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 删除线  
        if (isStrike) {
     
            CTOnOff sCtOnOff = rpr.addNewStrike();  
            sCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 双删除线  
        if (isDStrike) {
     
            CTOnOff dsCtOnOff = rpr.addNewDstrike();  
            dsCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 阴影  
        if (isShadow) {
     
            CTOnOff shadowCtOnOff = rpr.addNewShadow();  
            shadowCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 隐藏  
        if (isVanish) {
     
            CTOnOff vanishCtOnOff = rpr.addNewVanish();  
            vanishCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 阳文  
        if (isEmboss) {
     
            CTOnOff embossCtOnOff = rpr.addNewEmboss();  
            embossCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 阴文  
        if (isImprint) {
     
            CTOnOff isImprintCtOnOff = rpr.addNewImprint();  
            isImprintCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 空心  
        if (isOutline) {
     
            CTOnOff isOutlineCtOnOff = rpr.addNewOutline();  
            isOutlineCtOnOff.setVal(STOnOff.TRUE);  
        }  
        // 着重号  
        if (isEm) {
     
            CTEm em = rpr.addNewEm();  
            em.setVal(emType);  
        }  
        // 突出显示文本  
        if (isHightLight) {
     
            if (hightStyle != null) {
     
                CTHighlight hightLight = rpr.addNewHighlight();  
                hightLight.setVal(hightStyle);  
            }  
        }  
        if (isShd) {
     
            // 设置底纹  
            CTShd shd = rpr.addNewShd();  
            if (shdStyle != null) {
     
                shd.setVal(shdStyle);  
            }  
            if (shdColor != null) {
     
                shd.setColor(shdColor);  
            }  
        }  
        // 上标下标  
        if (verticalAlign != null) {
     
            rpr.addNewVertAlign().setVal(verticalAlign);  
        }  
        // 设置文本位置  
        rpr.addNewPosition().setVal(new BigInteger(String.valueOf(position)));  
        if (spacingValue != 0) {
     
            // 设置字符间距信息  
            CTSignedTwipsMeasure ctSTwipsMeasure = rpr.addNewSpacing();  
            ctSTwipsMeasure  
                    .setVal(new BigInteger(String.valueOf(spacingValue)));  
        }  
        // 设置字符间距缩进  
        if (indent > 0) {
     
            CTTextScale paramCTTextScale = rpr.addNewW();  
            paramCTTextScale.setVal(indent);  
        }  
        ctr.setTArray(new CTText[] {
    ctText });  
        cLink.setRArray(new CTR[]</
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值