/// <summary> /// 设置段落对齐方式 /// </summary> /// <param name="p"></param> /// <param name="align"></param> public static void SetAlign(this CT_P p, ST_Jc align) { CT_PPr ppr = p.pPr == null?p.AddNewPPr() : p.pPr; CT_Jc jc = ppr.IsSetJc() ? ppr.jc : ppr.AddNewJc(); jc.val = align; }
public TOC(CT_SdtBlock block) { this.block = block; CT_SdtPr sdtPr = block.AddNewSdtPr(); CT_DecimalNumber id = sdtPr.AddNewId(); id.val = ("4844945"); sdtPr.AddNewDocPartObj().AddNewDocPartGallery().val = ("Table of Contents"); CT_SdtEndPr sdtEndPr = block.AddNewSdtEndPr(); CT_RPr rPr = sdtEndPr.AddNewRPr(); CT_Fonts fonts = rPr.AddNewRFonts(); fonts.asciiTheme = (ST_Theme.minorHAnsi); fonts.eastAsiaTheme = (ST_Theme.minorHAnsi); fonts.hAnsiTheme = (ST_Theme.minorHAnsi); fonts.cstheme = (ST_Theme.minorBidi); CT_SdtContentBlock content = block.AddNewSdtContent(); CT_P p = content.AddNewP(); byte[] b = Encoding.Unicode.GetBytes("00EF7E24"); p.rsidR = b; p.rsidRDefault = b; CT_PPr pPr = p.AddNewPPr(); pPr.AddNewPStyle().val = ("TOCHeading"); pPr.AddNewJc().val = ST_Jc.center; CT_R run = p.AddNewR(); run.AddNewRPr().AddNewSz().val = 48; run.AddNewT().Value = ("Table of Contents"); run.AddNewBr().type = ST_BrType.textWrapping; // line break // TOC Field p = content.AddNewP(); pPr = p.AddNewPPr(); pPr.AddNewPStyle().val = "TOC1"; pPr.AddNewRPr().AddNewNoProof(); run = p.AddNewR(); run.AddNewFldChar().fldCharType = ST_FldCharType.begin; run = p.AddNewR(); CT_Text text = run.AddNewInstrText(); text.space = "preserve"; text.Value = (" TOC \\h \\z "); p.AddNewR().AddNewFldChar().fldCharType = ST_FldCharType.separate; }
public void TestSetAlignment() { //new clean instance of paragraph XWPFDocument doc = new XWPFDocument(); XWPFParagraph p = doc.CreateParagraph(); Assert.AreEqual(ParagraphAlignment.LEFT, p.Alignment); CT_P ctp = p.GetCTP(); CT_PPr ppr = ctp.pPr == null?ctp.AddNewPPr() : ctp.pPr; CT_Jc align = ppr.AddNewJc(); align.val = (ST_Jc.center); Assert.AreEqual(ParagraphAlignment.CENTER, p.Alignment); p.Alignment = (ParagraphAlignment.BOTH); Assert.AreEqual((int)ST_Jc.both, (int)ppr.jc.val); }
public void SetAlignment(ParagraphAlignment align) { CT_PPr ctpPr = this.GetCTPPr(); (ctpPr.IsSetJc() ? ctpPr.jc : ctpPr.AddNewJc()).val = EnumConverter.ValueOf <ST_Jc, ParagraphAlignment>(align); }
/// <summary> /// Creates a new section with the given page header. Must be /// called *after* the final paragraph of the section. In DOCX, a /// section definition is a child of the final paragraph of the /// section, except for the final section of the document, which /// is a direct child of the body. /// </summary> /// <param name="bookname"> The name of the book to display, usually from the \h marker </param> public void createBookHeaders(string bookname) { // Create page heading content for book CT_Hdr header = new CT_Hdr(); CT_P headerParagraph = header.AddNewP(); CT_PPr ppr = headerParagraph.AddNewPPr(); CT_Jc align = ppr.AddNewJc(); align.val = ST_Jc.center; CT_R run = headerParagraph.AddNewR(); // Show page numbers if requested if (configDocx.showPageNumbers) { // Page number run.AddNewFldChar().fldCharType = ST_FldCharType.begin; run.AddNewInstrText().Value = " PAGE "; run.AddNewFldChar().fldCharType = ST_FldCharType.separate; run.AddNewInstrText().Value = "1"; run.AddNewFldChar().fldCharType = ST_FldCharType.end; run.AddNewT().Value = " - "; } // Book name run.AddNewT().Value = bookname == null ? "" : bookname; // Chapter name if (currentChapterLabel.Length > 0) { run.AddNewT().Value = " - "; run.AddNewT().Value = currentChapterLabel; } // Create page header XWPFHeader documentHeader = (XWPFHeader)newDoc.CreateRelationship(XWPFRelation.HEADER, XWPFFactory.GetInstance(), pageHeaderCount); documentHeader.SetHeaderFooter(header); // Create new section and set its header CT_SectPr newSection = newDoc.Document.body.AddNewP().AddNewPPr().createSectPr(); newSection.type = new CT_SectType(); newSection.type.val = ST_SectionMark.continuous; CT_HdrFtrRef headerRef = newSection.AddNewHeaderReference(); headerRef.type = ST_HdrFtr.@default; headerRef.id = documentHeader.GetPackageRelationship().Id; // Set number of columns newSection.cols.num = configDocx.columnCount.ToString(); // Set page numbers CT_PageNumber pageNum = new CT_PageNumber { fmt = ST_NumberFormat.@decimal }; newSection.pgNumType = pageNum; // Increment page header count so each one gets a unique ID pageHeaderCount++; }
/// <summary> /// 创建页眉页脚 /// </summary> /// <param name="doc"></param> private void CreatePageHeaderFooter(XWPFDocument doc, CT_SectPr m_Sectpr) { XWPFParagraph p1 = doc.CreateParagraph(); p1.CreateRun().AddBreak();//新建页 //创建页眉 CT_Hdr m_hdr = new CT_Hdr(); m_hdr.Items = new System.Collections.ArrayList(); CT_P m_p = m_hdr.AddNewP(); CT_PPr cT_PPr = m_p.AddNewPPr(); cT_PPr.AddNewJc().val = ST_Jc.both;//两端对齐 cT_PPr.AddNewSpacing().beforeLines = "370"; CT_R cT_R = m_p.AddNewR(); cT_R.AddNewT().Value = "110kV濂泉(沙河)送电线路工程 施工图设计说明书 S123456S-D0101-01";//页眉内容 CT_RPr cT_RPr = cT_R.AddNewRPr(); cT_RPr.AddNewSz().val = (ulong)18; cT_RPr.AddNewSzCs().val = (ulong)18; cT_RPr.AddNewRFonts().ascii = "宋体"; //cT_RPr.AddNewU().val=ST_Underline.single;//下划线 //创建页眉关系(headern.xml) XWPFRelation Hrelation = XWPFRelation.HEADER; XWPFHeader m_h = (XWPFHeader)doc.CreateRelationship(Hrelation, XWPFFactory.GetInstance(), 3); //doc.CreateFootnotes(); //设置页眉 m_h.SetHeaderFooter(m_hdr); CT_HdrFtrRef m_HdrFtr = m_Sectpr.AddNewHeaderReference(); m_HdrFtr.type = ST_HdrFtr.@default; //m_h.GetRelationById(m_HdrFtr.id); m_HdrFtr.id = m_h.GetPackageRelationship().Id; //创建页脚 CT_Ftr m_ftr = new CT_Ftr(); m_ftr.Items = new System.Collections.ArrayList(); CT_SdtBlock m_Sdt = new CT_SdtBlock(); CT_SdtPr m_SdtPr = m_Sdt.AddNewSdtPr(); CT_SdtDocPart m_SdDocPartObj = m_SdtPr.AddNewDocPartObj(); m_SdDocPartObj.AddNewDocPartGallery().val = "PageNumbers (Bottom of Page)"; m_SdDocPartObj.docPartUnique = new CT_OnOff(); CT_SdtContentBlock m_SdtContent = m_Sdt.AddNewSdtContent(); CT_P m_SdtContentP = m_SdtContent.AddNewP(); CT_PPr m_SdtContentPpr = m_SdtContentP.AddNewPPr(); m_SdtContentPpr.AddNewJc().val = ST_Jc.center; m_SdtContentP.Items = new System.Collections.ArrayList(); CT_SimpleField m_fldSimple = new CT_SimpleField(); m_fldSimple.instr = " PAGE \\*MERGEFORMAT"; //页码字体大小 CT_R m_r = new CT_R(); CT_RPr m_Rpr = m_r.AddNewRPr(); m_Rpr.AddNewRFonts().ascii = "宋体"; m_Rpr.AddNewSz().val = (ulong)18; m_Rpr.AddNewSzCs().val = (ulong)18; m_r.AddNewT().Value = "1";//页数 m_fldSimple.Items.Add(m_r); m_SdtContentP.Items.Add(m_fldSimple); m_ftr.Items.Add(m_Sdt); //m_ftr.AddNewP().AddNewR().AddNewT().Value = "fff";//页脚内容 //m_ftr.AddNewP().AddNewPPr().AddNewJc().val = ST_Jc.center; //创建页脚关系(footern.xml) XWPFRelation Frelation = XWPFRelation.FOOTER; XWPFFooter m_f = (XWPFFooter)doc.CreateRelationship(Frelation, XWPFFactory.GetInstance(), doc.FooterList.Count + 1); //设置页脚 m_f.SetHeaderFooter(m_ftr); m_HdrFtr = m_Sectpr.AddNewFooterReference(); m_HdrFtr.type = ST_HdrFtr.@default; m_HdrFtr.id = m_f.GetPackageRelationship().Id; }