NPOI插图到docx页眉

尽管NPOI发展到了2.1,总的来说,NPOI支持word还不尽人意。在下因为项目的需要,对NPOI源码进行了必要的修改,以适应项目需要。在此仅讨论插图到docx页眉的操作情况。经过分析docx的xml文件,实现NPOI插图到docx页眉需要三个步骤。一是创建页眉,二是存储图片,并与页眉建立关联,三是在页眉中添加相应的插图xml描述。

具体代码如下:

            XWPFDocumentm_Docx = new XWPFDocument();

            //页面设置

            //A4:W=11906,h=16838

            m_Docx.Document.body.sectPr = new CT_SectPr();

            CT_SectPrm_SectPr = m_Docx.Document.body.sectPr;

            //页面设置A4横向

            m_SectPr.pgSz.w = (ulong)16838;

            m_SectPr.pgSz.h = (ulong)11906;

 

            //创建页眉关系(headern.xml

            XWPFRelationHrelation = XWPFRelation.HEADER;

         

            XWPFHeaderm_h = (XWPFHeader)m_Docx.CreateRelationship(Hrelation,XWPFFactory.GetInstance(),m_Docx.HeaderList.Count + 1);

 

            // 读取图片数据

            FileStreampictureData = null;

            pictureData = new FileStream("..\\..\\pic\\1.jpg", FileMode.Open, FileAccess.Read);

 

            //创建页眉

            CT_Hdrm_Hdr = new CT_Hdr();

           m_Hdr.AddNewP().AddNewR().AddNewT().Value = "hhh";//页眉内容

 

            //设置页眉

            m_h.SetHeaderFooter(m_Hdr);

          //页眉插入图片(inline

            m_h.AddPicture(pictureData,(int)PictureType.JPEG,"1.jpg",1000000,1000000);

 

            CT_HdrFtrRefm_HdrFtr = m_SectPr.AddNewHeaderReference();

            m_HdrFtr.type = ST_HdrFtr.@default;

            m_HdrFtr.id =m_h.GetPackageRelationship().Id;

 

对NPOI源码只进行了inline方式插图的修改。

经过调试的例子下载:http://download.csdn.net/detail/gltide/8411021。NPOI是tonyqus提供的2.1.3.0源码经过修改编译,创建的docx在word2007可以打开。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页