python 获取word页数

没想到获取个word页数这么简单的需求,实现起来还挺难。

1.根据网上说法:word文档中不保存总页数,只是在渲染时才根据文字和表格等去摆放到一页上,摆放不下时才展现下一页。所以从docx中取不到总页数

2.因此,仅用docx库不行,还需要用win32com。而win32com实际是:pip install pypiwin32   并且一定记得要重启python(重启仍不行可以试试https://blog.csdn.net/weixin_43149311/article/details/120806116  ,我重启IDLE就行了)

要获取Word文档的页数,我们可以使用以下步骤:

首先,将Word文档保存为临时文件。
然后,使用win32com.client模块打开该临时文件。
接下来,获取打开的Word应用程序的ActiveDocument。
最后,通过BuiltInDocumentProperties属性获取文档的页数。

3 代码:

import docx
import os
import win32com.client as win32

def get_word_page_count(document_path):
    document = docx.Document(document_path)
    abs_path = os.path.abspath(document_path)

    # 保存文档为临时文件
    temp_path = os.path.join(os.path.dirname(abs_path), "~temp.docx")
    document.save(temp_path)

    # 打开临时文件并获取页数
    word = win32.gencache.EnsureDispatch("Word.Application")
    word.Visible = False
    doc = word.Documents.Open(temp_path)
    pages = doc.BuiltInDocumentProperties(14).Value
    doc.Close()
    word.Quit()

    # 删除临时文件
    os.remove(temp_path)

    return pages

document_path = "1.docx"
page_count = get_word_page_count(document_path)
print("Word文档的页数:", page_count)

 

 

参考:https://blog.51cto.com/u_16175516/6850938

https://blog.csdn.net/u011840075/article/details/124696371

https://blog.csdn.net/weixin_43149311/article/details/120806116

https://blog.51cto.com/mouday/5018378

python 获取word页数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值