コード例 #1
0
        /**
         * MB 24 May 2010. Created this overloaded buildHdrFtr() method because testing demonstrated
         * that the XWPFFooter or XWPFHeader object returned by calls to the CreateHeader(int, XWPFParagraph[])
         * and CreateFooter(int, XWPFParagraph[]) methods or the GetXXXXXHeader/Footer methods where
         * headers or footers had been Added to a document since it had been Created/opened, returned
         * an object that Contained no XWPFParagraph objects even if the header/footer itself did contain
         * text. The reason was that this line of code; CTHdrFtr ftr = CTHdrFtr.Factory.NewInstance();
         * Created a brand new instance of the CTHDRFtr class which was then populated with data when
         * it should have recovered the CTHdrFtr object encapsulated within the XWPFHeaderFooter object
         * that had previoulsy been instantiated in the CreateHeader(int, XWPFParagraph[]) or
         * CreateFooter(int, XWPFParagraph[]) methods.
         */
        private CT_HdrFtr buildHdrFtr(String pStyle, XWPFParagraph[] paragraphs, XWPFHeaderFooter wrapper)
        {
            CT_HdrFtr ftr = wrapper._getHdrFtr();

            if (paragraphs != null)
            {
                for (int i = 0; i < paragraphs.Length; i++)
                {
                    CT_P p = ftr.AddNewP();
                    ftr.SetPArray(i, paragraphs[i].GetCTP());
                }
            }
            else
            {
                CT_P    p    = ftr.AddNewP();
                CT_Body body = doc.Document.body;
                if (body.SizeOfPArray() > 0)
                {
                    CT_P p0 = body.GetPArray(0);
                    if (p0.IsSetRsidR())
                    {
                        byte[] rsidr        = p0.rsidR;
                        byte[] rsidrdefault = p0.rsidRDefault;
                        p.rsidP        = rsidr;
                        p.rsidRDefault = rsidrdefault;
                    }
                }
                CT_PPr pPr             = p.AddNewPPr();
                pPr.AddNewPStyle().val = (pStyle);
            }
            return(ftr);
        }
コード例 #2
0
        private CT_HdrFtr buildHdrFtr(String pStyle, XWPFParagraph[] paragraphs)
        {
            CT_HdrFtr ftr = new CT_HdrFtr();

            if (paragraphs != null)
            {
                for (int i = 0; i < paragraphs.Length; i++)
                {
                    CT_P p = ftr.AddNewP();
                    //ftr.PArray=(0, paragraphs[i].CTP);		// MB 23 May 2010
                    ftr.SetPArray(i, paragraphs[i].GetCTP());           // MB 23 May 2010
                }
            }
            else
            {
                CT_P   p            = ftr.AddNewP();
                byte[] rsidr        = doc.Document.body.GetPArray(0).rsidR;
                byte[] rsidrdefault = doc.Document.body.GetPArray(0).rsidRDefault;
                p.rsidR        = (rsidr);
                p.rsidRDefault = (rsidrdefault);
                CT_PPr pPr             = p.AddNewPPr();
                pPr.AddNewPStyle().val = (pStyle);
            }
            return(ftr);
        }
コード例 #3
0
ファイル: XWPFHeader.cs プロジェクト: hanwangkun/npoi
 public XWPFHeader(XWPFDocument doc, CT_HdrFtr hdrFtr)
     : base(doc, hdrFtr)
 {
     /*
     XmlCursor cursor = headerFooter.NewCursor();
     cursor.SelectPath("./*");
     while (cursor.ToNextSelection()) {
         XmlObject o = cursor.Object;
         if (o is CTP) {
             XWPFParagraph p = new XWPFParagraph((CTP) o, this);
             paragraphs.Add(p);
         }
         if (o is CTTbl) {
             XWPFTable t = new XWPFTable((CTTbl) o, this);
             tables.Add(t);
         }
     }
     cursor.Dispose();*/
     foreach (object o in hdrFtr.Items)
     {
         if (o is CT_P)
         {
             XWPFParagraph p = new XWPFParagraph((CT_P)o, this);
             paragraphs.Add(p);
         }
         if (o is CT_Tbl)
         {
             XWPFTable t = new XWPFTable((CT_Tbl)o, this);
             tables.Add(t);
         }
     }
 }
コード例 #4
0
ファイル: XWPFHeader.cs プロジェクト: hiodava/Romero
 public XWPFHeader(XWPFDocument doc, CT_HdrFtr hdrFtr)
     : base(doc, hdrFtr)
 {
     /*
      * XmlCursor cursor = headerFooter.NewCursor();
      * cursor.SelectPath("./*");
      * while (cursor.ToNextSelection()) {
      *  XmlObject o = cursor.Object;
      *  if (o is CTP) {
      *      XWPFParagraph p = new XWPFParagraph((CTP) o, this);
      *      paragraphs.Add(p);
      *  }
      *  if (o is CTTbl) {
      *      XWPFTable t = new XWPFTable((CTTbl) o, this);
      *      tables.Add(t);
      *  }
      * }
      * cursor.Dispose();*/
     foreach (object o in hdrFtr.Items)
     {
         if (o is CT_P)
         {
             XWPFParagraph p = new XWPFParagraph((CT_P)o, this);
             paragraphs.Add(p);
         }
         if (o is CT_Tbl)
         {
             XWPFTable t = new XWPFTable((CT_Tbl)o, this);
             tables.Add(t);
         }
     }
 }
コード例 #5
0
        private CT_HdrFtr buildHdr(ST_HdrFtr type, string pStyle, XWPFHeaderFooter wrapper, XWPFParagraph[] pars)
        {
            CT_HdrFtr ctHdrFtr = this.buildHdrFtr(pStyle, pars, wrapper);

            this.SetHeaderReference(type, wrapper);
            return(ctHdrFtr);
        }
コード例 #6
0
        private CT_HdrFtr buildHdr(ST_HdrFtr type, String pStyle, XWPFHeaderFooter wrapper, XWPFParagraph[] pars)
        {
            //CTHdrFtr hdr = buildHdrFtr(pStyle, pars);				// MB 24 May 2010
            CT_HdrFtr hdr = buildHdrFtr(pStyle, pars, wrapper);         // MB 24 May 2010

            SetHeaderReference(type, wrapper);
            return(hdr);
        }
コード例 #7
0
 public XWPFHeaderFooter(XWPFDocument doc, CT_HdrFtr hdrFtr)
 {
     if (doc == null)
     {
         throw new NullReferenceException();
     }
     this.document     = doc;
     this.headerFooter = hdrFtr;
     this.ReadHdrFtr();
 }
コード例 #8
0
        public XWPFHeaderFooter(XWPFDocument doc, CT_HdrFtr hdrFtr)
        {
            if (doc == null)
            {
                throw new NullReferenceException();
            }

            document = doc;
            headerFooter = hdrFtr;
            ReadHdrFtr();
        }
コード例 #9
0
ファイル: XWPFHeader.cs プロジェクト: thachgiasoft/shuijin
 public XWPFHeader(XWPFDocument doc, CT_HdrFtr hdrFtr)
     : base(doc, hdrFtr)
 {
     foreach (object obj in hdrFtr.Items)
     {
         if (obj is CT_P)
         {
             this.paragraphs.Add(new XWPFParagraph((CT_P)obj, (IBody)this));
         }
         if (obj is CT_Tbl)
         {
             this.tables.Add(new XWPFTable((CT_Tbl)obj, (IBody)this));
         }
     }
 }
コード例 #10
0
        private void StartHeaderOrFooter(OoxmlPart part, Relationship relationship)
        {
            _currentPart          = new PartInfo();
            _currentPart.Part     = part;
            _currentPart.PartName = relationship.RelatedPart;
            _currentPart.Stream   = _createXmlStream(_currentPart.PartName);
            _currentPart.Writer   = new InterleavingWriter(_currentPart.Stream);
            _currentPart.Writer.TextWriter.Write(OoxmlPart.XmlDeclaration);
            CT_HdrFtr cT_HdrFtr = new CT_HdrFtr();

            cT_HdrFtr.WriteOpenTag(_currentPart.Writer.TextWriter, _currentPart.Part.Tag, _currentPart.Part.Namespaces);
            _tags.Push(cT_HdrFtr);
            _currentPart.TableContext     = new TableContext(_currentPart.Writer, inHeaderFooter: true);
            _currentPart.StartingLocation = _currentPart.Writer.Location;
        }
コード例 #11
0
        public XWPFFooter CreateFooter(ST_HdrFtr type, XWPFParagraph[] pars)
        {
            XWPFRelation footer        = XWPFRelation.FOOTER;
            string       pStyle        = "Footer";
            int          relationIndex = this.GetRelationIndex(footer);
            FtrDocument  ftrDocument   = new FtrDocument();
            XWPFFooter   relationship  = (XWPFFooter)this.doc.CreateRelationship((POIXMLRelation)footer, (POIXMLFactory)XWPFFactory.GetInstance(), relationIndex);
            CT_HdrFtr    headerFooter  = this.buildFtr(type, pStyle, (XWPFHeaderFooter)relationship, pars);

            relationship.SetHeaderFooter(headerFooter);
            Stream outputStream = relationship.GetPackagePart().GetOutputStream();

            ftrDocument.SetFtr((CT_Ftr)headerFooter);
            this.assignFooter(relationship, type);
            ftrDocument.Save(outputStream, this.Commit((XWPFHeaderFooter)relationship));
            outputStream.Close();
            return(relationship);
        }
コード例 #12
0
        public XWPFHeader CreateHeader(ST_HdrFtr type, XWPFParagraph[] pars)
        {
            XWPFRelation relation = XWPFRelation.HEADER;
            String       pStyle   = "Header";
            int          i        = GetRelationIndex(relation);
            HdrDocument  hdrDoc   = new HdrDocument();
            XWPFHeader   wrapper  = (XWPFHeader)doc.CreateRelationship(relation, XWPFFactory.GetInstance(), i);

            CT_HdrFtr hdr = buildHdr(type, pStyle, wrapper, pars);

            wrapper.SetHeaderFooter(hdr);

            hdrDoc.SetHdr((CT_Hdr)hdr);

            assignHeader(wrapper, type);
            using (Stream outputStream = wrapper.GetPackagePart().GetOutputStream())
            {
                hdrDoc.Save(outputStream);
            }
            return(wrapper);
        }
コード例 #13
0
        public XWPFFooter CreateFooter(ST_HdrFtr type, XWPFParagraph[] pars)
        {
            XWPFRelation relation = XWPFRelation.FOOTER;
            String       pStyle   = "Footer";
            int          i        = GetRelationIndex(relation);
            FtrDocument  ftrDoc   = new FtrDocument();
            XWPFFooter   wrapper  = (XWPFFooter)doc.CreateRelationship(relation, XWPFFactory.GetInstance(), i);

            CT_HdrFtr ftr = buildFtr(type, pStyle, wrapper, pars);

            wrapper.SetHeaderFooter(ftr);

            ftrDoc.SetFtr((CT_Ftr)ftr);

            assignFooter(wrapper, type);
            using (Stream outputStream = wrapper.GetPackagePart().GetOutputStream())
            {
                ftrDoc.Save(outputStream);
            }
            return(wrapper);
        }
コード例 #14
0
        private CT_HdrFtr buildHdrFtr(string pStyle, XWPFParagraph[] paragraphs)
        {
            CT_HdrFtr ctHdrFtr = new CT_HdrFtr();

            if (paragraphs != null)
            {
                for (int i = 0; i < paragraphs.Length; ++i)
                {
                    ctHdrFtr.AddNewP();
                    ctHdrFtr.SetPArray(i, paragraphs[i].GetCTP());
                }
            }
            else
            {
                CT_P   ctP          = ctHdrFtr.AddNewP();
                byte[] rsidR        = this.doc.Document.body.GetPArray(0).rsidR;
                byte[] rsidRdefault = this.doc.Document.body.GetPArray(0).rsidRDefault;
                ctP.rsidR        = rsidR;
                ctP.rsidRDefault = rsidRdefault;
                ctP.AddNewPPr().AddNewPStyle().val = pStyle;
            }
            return(ctHdrFtr);
        }
コード例 #15
0
        private CT_HdrFtr buildHdrFtr(string pStyle, XWPFParagraph[] paragraphs, XWPFHeaderFooter wrapper)
        {
            CT_HdrFtr hdrFtr = wrapper._getHdrFtr();

            if (paragraphs != null)
            {
                for (int i = 0; i < paragraphs.Length; ++i)
                {
                    hdrFtr.AddNewP();
                    hdrFtr.SetPArray(i, paragraphs[i].GetCTP());
                }
            }
            else
            {
                CT_P   ctP          = hdrFtr.AddNewP();
                byte[] rsidR        = this.doc.Document.body.GetPArray(0).rsidR;
                byte[] rsidRdefault = this.doc.Document.body.GetPArray(0).rsidRDefault;
                ctP.rsidP        = rsidR;
                ctP.rsidRDefault = rsidRdefault;
                ctP.AddNewPPr().AddNewPStyle().val = pStyle;
            }
            return(hdrFtr);
        }
コード例 #16
0
        /**
         * MB 24 May 2010. Created this overloaded buildHdrFtr() method because testing demonstrated
         * that the XWPFFooter or XWPFHeader object returned by calls to the CreateHeader(int, XWPFParagraph[])
         * and CreateFooter(int, XWPFParagraph[]) methods or the GetXXXXXHeader/Footer methods where
         * headers or footers had been Added to a document since it had been Created/opened, returned
         * an object that Contained no XWPFParagraph objects even if the header/footer itself did contain
         * text. The reason was that this line of code; CTHdrFtr ftr = CTHdrFtr.Factory.NewInstance();
         * Created a brand new instance of the CTHDRFtr class which was then populated with data when
         * it should have recovered the CTHdrFtr object encapsulated within the XWPFHeaderFooter object
         * that had previoulsy been instantiated in the CreateHeader(int, XWPFParagraph[]) or
         * CreateFooter(int, XWPFParagraph[]) methods.
         */

        private CT_HdrFtr buildHdrFtr(string pStyle, XWPFParagraph[] paragraphs, XWPFHeaderFooter wrapper)
        {
            CT_HdrFtr ftr = wrapper._getHdrFtr();

            if (paragraphs != null)
            {
                for (int i = 0; i < paragraphs.Length; i++)
                {
                    CT_P p = ftr.AddNewP();
                    ftr.SetPArray(i, paragraphs[i].GetCTP());
                }
            }
            else
            {
                CT_P   p            = ftr.AddNewP();
                byte[] rsidr        = doc.Document.body.GetPArray(0).rsidR;
                byte[] rsidrdefault = doc.Document.body.GetPArray(0).rsidRDefault;
                p.rsidP        = (rsidr);
                p.rsidRDefault = (rsidrdefault);
                CT_PPr pPr             = p.AddNewPPr();
                pPr.AddNewPStyle().val = (pStyle);
            }
            return(ftr);
        }
コード例 #17
0
 /**
  * Set a new headerFooter
  */
 public void SetHeaderFooter(CT_HdrFtr headerFooter)
 {
     this.headerFooter = headerFooter;
     ReadHdrFtr();
 }
コード例 #18
0
 protected XWPFHeaderFooter()
 {
     headerFooter = new CT_HdrFtr();
     ReadHdrFtr();
 }
コード例 #19
0
 /**
  * Set a new headerFooter
  */
 public void SetHeaderFooter(CT_HdrFtr headerFooter)
 {
     this.headerFooter = headerFooter;
     ReadHdrFtr();
 }
コード例 #20
0
 private CT_HdrFtr buildHdrFtr(String pStyle, XWPFParagraph[] paragraphs)
 {
     CT_HdrFtr ftr = new CT_HdrFtr();
     if (paragraphs != null) {
         for (int i = 0 ; i < paragraphs.Length ; i++) {
             CT_P p = ftr.AddNewP();
             //ftr.PArray=(0, paragraphs[i].CTP);		// MB 23 May 2010
             ftr.SetPArray(i, paragraphs[i].GetCTP());   	// MB 23 May 2010
         }
     }
     else {
         CT_P p = ftr.AddNewP();
         byte[] rsidr = doc.Document.body.GetPArray(0).rsidR;
         byte[] rsidrdefault = doc.Document.body.GetPArray(0).rsidRDefault;
         p.rsidR = (rsidr);
         p.rsidRDefault = (rsidrdefault);
         CT_PPr pPr = p.AddNewPPr();
         pPr.AddNewPStyle().val = (pStyle);
     }
     return ftr;
 }