|
@@ -0,0 +1,379 @@
|
|
|
|
+package cn.cslg.pas.service;
|
|
|
|
+
|
|
|
|
+import cn.cslg.pas.common.model.vo.PoiVO;
|
|
|
|
+import cn.cslg.pas.domain.PatentPledge;
|
|
|
|
+import cn.cslg.pas.mapper.PatentPledgeMapper;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
|
+import org.apache.poi.hwpf.extractor.WordExtractor;
|
|
|
|
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
|
+import org.apache.poi.util.LocaleUtil;
|
|
|
|
+import org.apache.poi.util.Units;
|
|
|
|
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
|
|
|
|
+import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
|
|
|
|
+import org.apache.poi.xwpf.usermodel.*;
|
|
|
|
+import org.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute;
|
|
|
|
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
|
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import sun.misc.BASE64Decoder;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.*;
|
|
|
|
+import java.math.BigInteger;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * <p>
|
|
|
|
+ * 专利信息质押质权人表 服务类
|
|
|
|
+ * </p>
|
|
|
|
+ *
|
|
|
|
+ * @author 王岩
|
|
|
|
+ * @since 2022-02-24
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
|
|
+public class PoiService extends ServiceImpl<PatentPledgeMapper, PatentPledge> {
|
|
|
|
+ public PoiVO readWordFile() throws IOException {
|
|
|
|
+ PoiVO poiVO =new PoiVO();
|
|
|
|
+ InputStream is = new FileInputStream("C:\\\\BaiduNetdiskDownload\\\\生成\\\\first.docx");
|
|
|
|
+ XWPFDocument doc = new XWPFDocument(is);
|
|
|
|
+ List<XWPFParagraph> ps=doc.getParagraphs();
|
|
|
|
+ PoiVO.Pg title = new PoiVO.Pg();
|
|
|
|
+ List<PoiVO.Pg> pgs =new ArrayList<>();
|
|
|
|
+ title.setAlignment(ps.get(0).getFontAlignment());
|
|
|
|
+ XWPFRun r = ps.get(0).getRuns().get(0);
|
|
|
|
+ title.setColor(r.getColor());
|
|
|
|
+ title.setText(r.getText(0));
|
|
|
|
+ title.setFontSize(r.getFontSize());
|
|
|
|
+
|
|
|
|
+for(int i=1 ;i<ps.size();i++)
|
|
|
|
+{ PoiVO.Pg pg = new PoiVO.Pg();
|
|
|
|
+ if(ps.get(i).getStyle().equals("Word")) {
|
|
|
|
+ XWPFRun rh = ps.get(i).getRuns().get(0);
|
|
|
|
+ pg.setFontSize(rh.getFontSize());
|
|
|
|
+ pg.setFontFamily(rh.getFontFamily());
|
|
|
|
+ pg.setText(rh.getText(0));
|
|
|
|
+ pg.setColor(rh.getColor());
|
|
|
|
+ pg.setAlignment(ps.get(i).getFontAlignment());
|
|
|
|
+ pg.setType(ps.get(i).getStyle());
|
|
|
|
+ pgs.add(pg);
|
|
|
|
+ }
|
|
|
|
+ else if(ps.get(i).getStyle().equals("picture")) {
|
|
|
|
+ XWPFRun rh = ps.get(i).getRuns().get(0);
|
|
|
|
+ rh.getPictureText();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+poiVO.setPgs(pgs);
|
|
|
|
+poiVO.setTitle(title);
|
|
|
|
+ return poiVO;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void writeFile(PoiVO poiVO) throws IOException, InvalidFormatException {
|
|
|
|
+ XWPFDocument doc = new XWPFDocument();// 创建Word文件
|
|
|
|
+ PoiVO.Pg title =poiVO.getTitle();
|
|
|
|
+ // 标题
|
|
|
|
+ XWPFParagraph p = doc.createParagraph();// 新建段落
|
|
|
|
+ p.setFontAlignment(title.getAlignment());// 设置段落的对齐方式
|
|
|
|
+ XWPFRun r = p.createRun();//创建标题
|
|
|
|
+ r.setText(title.getText());
|
|
|
|
+ r.setBold(title.getBold());//设置为粗体
|
|
|
|
+ r.setColor(title.getColor());//设置颜色
|
|
|
|
+ r.setFontSize(title.getFontSize());//设置字体大小
|
|
|
|
+ if(title.getAddCarriageReturn()){
|
|
|
|
+ r.addCarriageReturn();//回车换行
|
|
|
|
+ }
|
|
|
|
+ List<PoiVO.Pg> pgs = poiVO.getPgs();
|
|
|
|
+
|
|
|
|
+ CTSdtBlock ctSdtBlock =doc.getDocument().getBody().addNewSdt();
|
|
|
|
+ this.CustomTOC(ctSdtBlock);
|
|
|
|
+ for(int i=0;i<pgs.size();i++){
|
|
|
|
+ if(pgs.get(i).getType().equals("word")) {
|
|
|
|
+ XWPFParagraph tm = doc.createParagraph();
|
|
|
|
+ tm.setStyle("word");
|
|
|
|
+ XWPFRun rh = tm.createRun();
|
|
|
|
+ rh.setFontSize(pgs.get(i).getFontSize());
|
|
|
|
+ rh.setFontFamily(pgs.get(i).getFontFamily());
|
|
|
|
+ rh.setText(pgs.get(i).getText());
|
|
|
|
+ rh.setColor(pgs.get(i).getColor());
|
|
|
|
+ tm.setFontAlignment(pgs.get(i).getAlignment());
|
|
|
|
+ rh.setFontFamily(pgs.get(i).getFontFamily());
|
|
|
|
+ if (pgs.get(i).getAddCarriageReturn()) {
|
|
|
|
+ rh.addCarriageReturn();//回车换行
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if(pgs.get(i).getType().equals("picture")) {
|
|
|
|
+ XWPFParagraph pImg = doc.createParagraph();
|
|
|
|
+ pImg.setStyle("picture");
|
|
|
|
+ pImg.setFontAlignment(pgs.get(i).getAlignment());
|
|
|
|
+ XWPFRun rImg = pImg.createRun();//创建标题
|
|
|
|
+ rImg.addCarriageReturn();//回车换行
|
|
|
|
+ String imgData = pgs.get(i).getImgUrl();
|
|
|
|
+ // 转为数据流
|
|
|
|
+ InputStream stream = new FileInputStream(imgData);
|
|
|
|
+ // 向段落中插入图片
|
|
|
|
+ rImg.addPicture(stream, Document.PICTURE_TYPE_PNG, pgs.get(i).getImgUrl(), Units.toEMU(pgs.get(i).getWeight()), Units.toEMU(pgs.get(i).getHeight()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else if(pgs.get(i).getType().equals("table")) {
|
|
|
|
+ String org =pgs.get(i).getText();
|
|
|
|
+ int rows =0;
|
|
|
|
+ int cols =0;
|
|
|
|
+String[] row =org.split("\\|\\|");
|
|
|
|
+ rows=row.length;
|
|
|
|
+ for(int t=0;t<row.length;t++){
|
|
|
|
+ String[] tem = row[t].split(",");
|
|
|
|
+ cols= cols> tem.length ? cols: tem.length;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ XWPFTable table1 = doc.createTable(rows, cols);
|
|
|
|
+ table1.setStyleID("");
|
|
|
|
+ table1.setWidthType(TableWidthType.AUTO);
|
|
|
|
+ for(int t=0;t<row.length;t++){
|
|
|
|
+ String[] tem = row[t].split(",");
|
|
|
|
+ XWPFTableRow row1 = table1.getRow(t);
|
|
|
|
+ for(int q=0;q<tem.length;q++){
|
|
|
|
+ row1.getCell(q).setText(tem[q]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ doc.setTable(0, table1);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else if(pgs.get(i).getType().equals("Heading1")){
|
|
|
|
+ XWPFParagraph Paragraph = doc.createParagraph();
|
|
|
|
+ CTBookmark ctBookmark1 = Paragraph.getCTP().addNewBookmarkStart();//开始书签
|
|
|
|
+ ctBookmark1.setId(BigInteger.valueOf(i));//开始书签和结束书签通过ID关联
|
|
|
|
+ ctBookmark1.setName("书签"+ i);//书签名称
|
|
|
|
+ Paragraph.setStyle(pgs.get(i).getType());
|
|
|
|
+ XWPFRun run1 = Paragraph.createRun();
|
|
|
|
+ run1.setText(pgs.get(i).getText());
|
|
|
|
+ run1.setColor(pgs.get(i).getColor());
|
|
|
|
+ run1.setFontSize(pgs.get(i).getFontSize());
|
|
|
|
+ run1.setBold(true);
|
|
|
|
+ Paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(i));
|
|
|
|
+ this.addItem2TOC(doc,ctSdtBlock);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ FileOutputStream out = new FileOutputStream("C:\\\\BaiduNetdiskDownload\\\\生成\\\\first.docx");
|
|
|
|
+ CTSectPr sectPr = doc.getDocument().getBody().addNewSectPr();
|
|
|
|
+ XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(doc, sectPr);
|
|
|
|
+ //添加页脚
|
|
|
|
+ CTP ctpFooter = CTP.Factory.newInstance();
|
|
|
|
+ CTR ctrFooter = ctpFooter.addNewR();
|
|
|
|
+ CTText ctFooter = ctrFooter.addNewT();
|
|
|
|
+ String footerText = "ctpFooter";
|
|
|
|
+ ctFooter.setStringValue(footerText);
|
|
|
|
+ XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, doc);
|
|
|
|
+ XWPFParagraph[] parsFooter = new XWPFParagraph[1];
|
|
|
|
+ parsFooter[0] = footerParagraph;
|
|
|
|
+ policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
|
|
|
|
+ doc.write(out);
|
|
|
|
+ out.close();
|
|
|
|
+
|
|
|
|
+ System.out.println("Process Completed Successfully");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void addItem2TOC( XWPFDocument doc ,CTSdtBlock block) {
|
|
|
|
+ List<XWPFParagraph> paragraphs = doc.getParagraphs();
|
|
|
|
+ for (XWPFParagraph par : paragraphs) {
|
|
|
|
+ String parStyle = par.getStyle();
|
|
|
|
+ if (parStyle != null && parStyle.startsWith("Heading")) {
|
|
|
|
+ List<CTBookmark> bookmarkList=par.getCTP().getBookmarkStartList();
|
|
|
|
+ try {
|
|
|
|
+ int level = Integer.parseInt(parStyle.substring("Heading".length()));
|
|
|
|
+
|
|
|
|
+ //添加标题
|
|
|
|
+ this.addRow(level, par.getText(), 2, bookmarkList.get(0).getName(),block);
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //生成页脚
|
|
|
|
+ public void createFooter(XWPFDocument doc){
|
|
|
|
+ /*
|
|
|
|
+ * 生成页脚段落
|
|
|
|
+ * 给段落设置宽度为占满一行
|
|
|
|
+ * */
|
|
|
|
+ CTSectPr sectPr=doc.getDocument().getBody().addNewSectPr();
|
|
|
|
+ XWPFHeaderFooterPolicy headerFooterPolicy=new XWPFHeaderFooterPolicy(doc,sectPr);
|
|
|
|
+ try {
|
|
|
|
+ XWPFFooter footer=headerFooterPolicy.createFooter(STHdrFtr.DEFAULT);
|
|
|
|
+ XWPFParagraph paragraph = footer.getParagraphArray(0);
|
|
|
|
+ paragraph.setAlignment(ParagraphAlignment.LEFT);
|
|
|
|
+ paragraph.setVerticalAlignment(TextAlignment.CENTER);
|
|
|
|
+ paragraph.setBorderTop(Borders.THICK);
|
|
|
|
+ CTTabStop tabStop = paragraph.getCTP().getPPr().addNewTabs().addNewTab();
|
|
|
|
+ tabStop.setVal(STTabJc.RIGHT);
|
|
|
|
+ int twipsPerInch = 1440;
|
|
|
|
+ tabStop.setPos(BigInteger.valueOf(6 * twipsPerInch));
|
|
|
|
+ /*
|
|
|
|
+ * 给段落创建元素
|
|
|
|
+ * 设置元素字面为公司地址+公司电话
|
|
|
|
+ * */
|
|
|
|
+ XWPFRun run = paragraph.createRun();
|
|
|
|
+ run.addTab();
|
|
|
|
+ String s=run.getFontFamily();
|
|
|
|
+ /*
|
|
|
|
+ * 生成页码
|
|
|
|
+ * 页码右对齐
|
|
|
|
+ * */
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ run.setText("第");
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ CTFldChar fldChar = run.getCTR().addNewFldChar();
|
|
|
|
+ fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ CTText ctText = run.getCTR().addNewInstrText();
|
|
|
|
+ ctText.setStringValue("PAGE \\* MERGEFORMAT");
|
|
|
|
+ ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
|
|
|
|
+ fldChar = run.getCTR().addNewFldChar();
|
|
|
|
+ fldChar.setFldCharType(STFldCharType.Enum.forString("end"));
|
|
|
|
+
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ run.setText("页/共");
|
|
|
|
+
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ fldChar = run.getCTR().addNewFldChar();
|
|
|
|
+ fldChar.setFldCharType(STFldCharType.Enum.forString("begin"));
|
|
|
|
+
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ ctText = run.getCTR().addNewInstrText();
|
|
|
|
+ ctText.setStringValue("NUMPAGES \\* MERGEFORMAT ");
|
|
|
|
+ ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve"));
|
|
|
|
+
|
|
|
|
+ fldChar = run.getCTR().addNewFldChar();
|
|
|
|
+ fldChar.setFldCharType(STFldCharType.Enum.forString("end"));
|
|
|
|
+
|
|
|
|
+ run = paragraph.createRun();
|
|
|
|
+ run.setText("页");;
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 目录添加行
|
|
|
|
+ public void addRow(int level, String title, int page, String bookmarkRef, CTSdtBlock block) {
|
|
|
|
+ CTSdtContentBlock contentBlock = block.getSdtContent();
|
|
|
|
+ CTP p = contentBlock.addNewP();
|
|
|
|
+ p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
|
|
|
|
+ p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
|
|
|
|
+ CTPPr pPr = p.addNewPPr();
|
|
|
|
+ pPr.addNewPStyle().setVal("TOC" + level);
|
|
|
|
+ CTTabs tabs = pPr.addNewTabs();//Set of Custom Tab Stops自定义制表符集合
|
|
|
|
+ CTTabStop tab = tabs.addNewTab();//Custom Tab Stop自定义制表符
|
|
|
|
+ tab.setVal(STTabJc.RIGHT);
|
|
|
|
+ tab.setLeader(STTabTlc.DOT);
|
|
|
|
+ tab.setPos(new BigInteger("9100"));//默认为8290,因为调整过页边距,所有需要调整,手动设置找出最佳值
|
|
|
|
+ pPr.addNewRPr().addNewNoProof();//不检查语法
|
|
|
|
+ CTR run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ run.addNewT().setStringValue(title);//添加标题文字
|
|
|
|
+ //设置标题字体
|
|
|
|
+ CTRPr pRpr = run.getRPr();
|
|
|
|
+ CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();
|
|
|
|
+ fonts.setAscii("Times New Roman");
|
|
|
|
+ fonts.setEastAsia("楷体");
|
|
|
|
+ fonts.setHAnsi("楷体");
|
|
|
|
+ // 设置标题字体大小
|
|
|
|
+ CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
|
|
|
|
+ sz.setVal(new BigInteger("21"));
|
|
|
|
+ CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs();
|
|
|
|
+ szCs.setVal(new BigInteger("21"));
|
|
|
|
+ //添加制表符
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ run.addNewTab();
|
|
|
|
+ //添加页码左括号
|
|
|
|
+ p.addNewR().addNewT().setStringValue("(");
|
|
|
|
+ //STFldCharType.BEGIN标识与结尾处STFldCharType.END相对应
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ run.addNewFldChar().setFldCharType(STFldCharType.BEGIN);//Field Character Type
|
|
|
|
+ // pageref run
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ CTText text = run.addNewInstrText();//Field Code 添加域代码文本控件
|
|
|
|
+ text.setSpace(SpaceAttribute.Space.PRESERVE);
|
|
|
|
+ // bookmark reference
|
|
|
|
+ //源码的域名为" PAGEREF _Toc","\h"含义为在目录内建立目录项与页码的超链接
|
|
|
|
+ text.setStringValue(" PAGEREF "+bookmarkRef + " \\h ");
|
|
|
|
+ p.addNewR().addNewRPr().addNewNoProof();
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ run.addNewFldChar().setFldCharType(STFldCharType.SEPARATE);
|
|
|
|
+ // page number run
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ run.addNewT().setStringValue(Integer.toString(page));
|
|
|
|
+ run = p.addNewR();
|
|
|
|
+ run.addNewRPr().addNewNoProof();
|
|
|
|
+ //STFldCharType.END标识与上面STFldCharType.BEGIN相对应
|
|
|
|
+ run.addNewFldChar().setFldCharType(STFldCharType.END);
|
|
|
|
+ //添加页码右括号
|
|
|
|
+ p.addNewR().addNewT().setStringValue(")");
|
|
|
|
+ //设置行间距
|
|
|
|
+ CTSpacing pSpacing = pPr.getSpacing() != null ? pPr.getSpacing(): pPr.addNewSpacing();
|
|
|
|
+ pSpacing.setLineRule(STLineSpacingRule.AUTO);//行间距类型:多倍
|
|
|
|
+ pSpacing.setLine(new BigInteger("360"));//此处1.5倍行间距
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //添加目录
|
|
|
|
+ public void CustomTOC(CTSdtBlock block) {
|
|
|
|
+ CTSdtPr sdtPr = block.addNewSdtPr();
|
|
|
|
+ CTDecimalNumber id = sdtPr.addNewId();
|
|
|
|
+ id.setVal(new BigInteger("4844945"));
|
|
|
|
+ sdtPr.addNewDocPartObj().addNewDocPartGallery().setVal("Table of contents");
|
|
|
|
+ CTSdtEndPr sdtEndPr = block.addNewSdtEndPr();
|
|
|
|
+ CTRPr rPr = sdtEndPr.addNewRPr();
|
|
|
|
+ CTFonts fonts = rPr.addNewRFonts();
|
|
|
|
+ fonts.setAsciiTheme(STTheme.MINOR_H_ANSI);
|
|
|
|
+ fonts.setEastAsiaTheme(STTheme.MINOR_H_ANSI);
|
|
|
|
+ fonts.setHAnsiTheme(STTheme.MINOR_H_ANSI);
|
|
|
|
+ fonts.setCstheme(STTheme.MINOR_BIDI);
|
|
|
|
+ rPr.addNewB().setVal(STOnOff.OFF);
|
|
|
|
+ rPr.addNewBCs().setVal(STOnOff.OFF);
|
|
|
|
+ rPr.addNewColor().setVal("auto");
|
|
|
|
+ rPr.addNewSz().setVal(new BigInteger("24"));
|
|
|
|
+ rPr.addNewSzCs().setVal(new BigInteger("24"));
|
|
|
|
+ CTSdtContentBlock content = block.addNewSdtContent();
|
|
|
|
+ CTP p = content.addNewP();
|
|
|
|
+ p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
|
|
|
|
+ p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
|
|
|
|
+ p.addNewPPr().addNewPStyle().setVal("TOCHeading");
|
|
|
|
+ p.addNewR().addNewT().setStringValue("目 录");//源码中为"Table of contents"
|
|
|
|
+ //设置段落对齐方式,即将“目录”二字居中
|
|
|
|
+ CTPPr pr = p.getPPr();
|
|
|
|
+ CTJc jc = pr.isSetJc() ? pr.getJc() : pr.addNewJc();
|
|
|
|
+ STJc.Enum en = STJc.Enum.forInt(ParagraphAlignment.CENTER.getValue());
|
|
|
|
+ jc.setVal(en);
|
|
|
|
+ //"目录"二字的字体
|
|
|
|
+ CTRPr pRpr = p.getRArray(0).addNewRPr();
|
|
|
|
+ fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();
|
|
|
|
+ fonts.setAscii("Times New Roman");
|
|
|
|
+ fonts.setEastAsia("华文中宋");
|
|
|
|
+ fonts.setHAnsi("华文中宋");
|
|
|
|
+ //"目录"二字加粗
|
|
|
|
+ CTOnOff bold = pRpr.isSetB() ? pRpr.getB() : pRpr.addNewB();
|
|
|
|
+ bold.setVal(STOnOff.TRUE);
|
|
|
|
+ // 设置“目录”二字字体大小为24号
|
|
|
|
+ CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
|
|
|
|
+ sz.setVal(new BigInteger("36"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|