python-docx库找不到相关的页面对象,网上查找多说是word是流动分页的,文件内容本身并不存储分页结果,具体分页情况都是等到所有的图文渲染后才能确定。
后来在vba中发现了Rectangles对象,其中有页面属性,故使用win32com库调用vba相关内容来实现需求
下载相关库
pip install pywin32
import win32com
from win32com.client import Dispatch, DispatchEx
import os
# 指定copy页
page_n = 2
word = Dispatch('Word.Application') # 打开word应用程序
try:
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
path = os.path.abspath('test.docx') # word文件路径
doc_add = word.Documents.Add()
doc_add.SaveAs(os.path.abspath('test_new.docx')) # 创建新文件
doc_new = word.Documents.Open(os.path.abspath('test_new.docx'))
doc = word.Documents.Open(FileName=path)
# 页对象
pages = doc.ActiveWindow