Ms word 我在word文档中得到多个页眉和页脚,在policy.GetFirstPageHeader()中使用NPOI得到null

Ms word 我在word文档中得到多个页眉和页脚,在policy.GetFirstPageHeader()中使用NPOI得到null,ms-word,header,npoi,Ms Word,Header,Npoi,我在Word文档中得到多个页眉和页脚;我无法区分首页、默认(奇数)或偶数标题 当我试图调用policy.GetFirstPageHeader()时,我得到了一个空值 XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document); var headerList = document.HeaderList; var footerList = document.FooterList; var firstPageHeader

我在Word文档中得到多个页眉和页脚;我无法区分首页、默认(奇数)或偶数标题

当我试图调用
policy.GetFirstPageHeader()
时,我得到了一个空值

XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document);

var headerList = document.HeaderList;
var footerList = document.FooterList;

var firstPageHeader = policy.GetFirstPageHeader();
var firstPageFooter = policy.GetFirstPageFooter();

XWPFHeader header = policy.GetDefaultHeader();
XWPFHeader even = policy.GetEvenPageHeader();
XWPFHeader odd = policy.GetOddPageHeader();
我得到了空值。有人能建议如何区分Word文档中的标题吗?

var listOfheaders=new List();
var listOfheaders = new List<CT_HdrFtrRef>();
foreach (var par in document.Paragraphs)
{
var ParagraphsectPr = (CT_P)par.GetType().GetField("paragraph", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(par);

 if (ParagraphsectPr.pPr.sectPr != null)
{
foreach (var headerref in ParagraphsectPr.pPr.sectPr.headerReference)
 {
   listOfheaders.Add(headerref);
 }
 }
}

                foreach (var list in listOfheaders)
                {                    
                    var relatedPart = document.GetRelationById(list.id);
                    XWPFHeader hdr = null;
                    if (relatedPart != null && relatedPart is XWPFHeader)
                    {
                        hdr = (XWPFHeader)relatedPart;
                    }
                    // Assign it
                    ST_HdrFtr type = list.type;
                    if (!string.IsNullOrEmpty(hdr.Text))
                    {
                        if (type == ST_HdrFtr.first)
                        {
                            firstPageHeadr = hdr;
                        }
                        else if (type == ST_HdrFtr.even)
                        {
                            evenPageHeader = hdr;
                        }
                        else
                        {
                            defaultHeader = hdr;
                        }
                    }                   
                }
(文件中的VAR PAR) { var ParagraphsectPr=(CT_P)par.GetType().GetField(“段落”,BindingFlags.Instance | BindingFlags.NonPublic).GetValue(par); 如果(段落sectPr.pPr.sectPr!=null) { foreach(第sectPr.pPr.sectPr.headerReference段中的var headerref) { 标题列表。添加(headerref); } } } foreach(标题列表中的var列表) { var relatedPart=document.GetRelationById(list.id); XWPFHeader hdr=null; if(relatedPart!=null&&relatedPart为XWPFHeader) { hdr=(XWPFHeader)相关部分; } //分配 ST_HdrFtr type=list.type; 如果(!string.IsNullOrEmpty(hdr.Text)) { if(type==ST_HdrFtr.first) { firstPageHeadr=hdr; } else if(type==ST_HdrFtr.偶数) { evenPageHeader=hdr; } 其他的 { defaultHeader=hdr; } } }
在Word UI中打开文档。是否激活了“不同的首页”选项?如果不是,则没有第一页标题,因此可以解释空值。偶数页也是如此。另一方面,默认值应始终可用。