方式一:通过openxml 从xml结构里获得
不可行。原因如下
A footer is not on a page and a page number in a footer is a field that potentially identifies with multiple pages. In a Word document file, there are no pages. Pages are set as a part of the printing process.
It is possible with the file open in Word to identify a page number using vba but it is not part of the xml.
翻译一下,页脚并不存在于页面上,页脚上的页码是一个有可能经过多个页才能确定的域。在一个word文档中,并没有页,页被认为是一个word页面绘制过程。
使用vba用word打开文档可以确定页码,但页码并不存在于xml上。

下面这种情况可以从xml结构中获得一部分页码。即word中存在目录。但只能获得大纲标题所在页。并不能任意指定段落。而且并不保证准确,因为默认情况下目录并不自动更新。
虽然页码在xml结构中不存在,但是目录上大纲标题对应的页是硬编码在xml结构里的。

方式二:通过vba --因为vba需要打开word,所以是可以获得页码的

/// <summary>
/// 得到Paragraph所在页码
/// </summary>
/// <param name="pa"></param>
/// <returns></returns>
public static int GetPageNumberOfParagraph(Paragraph pa)
{
return GetPageNumberOfRange(pa.Range);
} private static int GetPageNumberOfRange(Range range)
{
return (int)range.get_Information(WdInformation.wdActiveEndPageNumber);
}

C# 获得word中某一段落所在页的页码的更多相关文章

  1. WORD中如何让前两页不显示页码

    WORD中如何让前两页不显示页码   上稿人:ojn 点击率: 15191   我们有时在用word编辑文档时,会遇上第一.二页无需显示页码,第三页才是正文的第一页时,该如何正确插入页码呢? 以wor ...

  2. 如何在word中的第3+n页处插入页面并重新从1开始

    在插入页码时有时可能会遇到这种情况: word的第一页是文档名称 第二页是目录 第三页才开始是正文,而我们希望看到页码从第三页开始才是第1页. 在第三页的开头,插入分隔符“下一页”,如果office2 ...

  3. Java 批量删除Word中的空白段落

    1. 测试文档.期望达到的目标文档效果 用于测试的Word文档如下所示,包含的空白段落影响文章整体布局及美观性: 目标文档效果: 2. 辅助工具 2.1 使用类库:Free Spire.Doc for ...

  4. word中表格占满一页,在后面出现一个空白页 删除方法

    如果空白面是最后一页,且鼠标在第一行,可选“格式”-“段落”,将这一行的行距设为固定值1磅,该空白页将自动消失.

  5. word中让首页和目录不显示页码的方法

    在正文前一页,插入->分隔符->下一页,然后插入页码,取消与前一页页眉的链接,删除首页和目录的页码即可

  6. Word中如何从某一页重新开始页码

  7. Word文档怎么从第二页加页码

    1.首先将光标放到首页的最后位置 2.“页面布局”—“分隔符”—“下一页” 3.“插入”—“页码”—选一种样式的页码 4.将光标定位到第二页的页脚处,“设计”—取消“链接到前一条页眉” 5.将第二页的 ...

  8. Word中的段落

    Word文档中的块级内容的最基本单位是段落,段落用<p>元素进行存储.段落定义在新行中开始,段落可以包含三方面的信息:可选的段落属性.内嵌的内容(通常为文本)和用于比较两个文档的内容的一组 ...

  9. python读取word中的段落、表、图+++++++++++Doc转换Docx

    读取文本.图.表.解压信息 import docx import zipfile import os import shutil '''读取word中的文本''' def gettxt(): file ...

随机推荐

  1. 【guava】对象处理

    一,equals方法 我们在开发中经常会需要比较两个对象是否相等,这时候我们需要考虑比较的两个对象是否为null,然后再调用equals方法来比较是否相等,google guava库的com.goog ...

  2. CentOS7.4关闭防火墙

    //临时关闭 systemctl stop firewalld //禁止开机启动 systemctl disable firewalld Removed symlink /etc/systemd/sy ...

  3. bootstrap的其他

    情境文本颜色 <p class="text-muted">...</p> <p class="text-primary">. ...

  4. python之time和datetime的常用方法

    python之time和datetime的常用方法   一.time的常用方法: import time,datetime # 时间有三种展现方式:时间戳,时间元组,格式化的时间print(time. ...

  5. ASP.NET 设计模式分为三种类型

    设计模式分为三种类型,共23类.  一.创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式.      二.结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代 ...

  6. C# 关于时区的操作

    有关时区自动更新的 在注册表以下路径,start键值3,4表示自动/不自动更新 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tza ...

  7. UESTC - 1610 递推方程+矩阵快速幂

    感觉像是HDU Keyboard的加强版,先推出3张牌时的所有组合,然后递推出n张牌 看到n=1e18时吓尿了 最后24那里还是推错了.. (5行1列 dp[1][n],dp[2][n],dp[3][ ...

  8. vm中centos7磁盘扩容

      在VM虚拟平台管理客户端,将虚拟机关机后,将分配的磁盘大小30G扩至300G.如图.   调整完后,重新打开虚拟机,使用fdisk -l查看,可以看到我们刚刚扩容的空间已经可以看到,但没有分区,还 ...

  9. 在Eclipse中添加Servlet-api.jar的方法

    方法一: 正确的加载servlet-api.jar的方法如下: 1:右击项目工程名称 2:Properties 3:  Jvav Build Path 4:  Libraries 5:  Add Ex ...

  10. mysql允许数据库远程连接

    2018-11-06 进入数据库 mysql -uroou(用户) -p123456(密码) 授权某个user可远程访问 grant all privileges on *.* to ' with g ...