admin 管理员组文章数量: 887021
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.Panes(1).Pages.Count
if page_n > pages:
print("指定页索引超出已有页面")
else:
objRectangles = doc.ActiveWindow.Panes(1).Pages(page_n).Rectangles
for i in range(objRectangles.Count):
objRectangles.Item(i+1).Range.Copy()
doc_new.Range(doc_new.Content.End - 1,doc_new.Content.End - 1).Paste()
doc.Close()
doc_new.Save()
doc_new.Close()
except Exception as e:
print(e)
finally:
word.Quit
已测试过没有问题,如遇到问题可以评论区交流
版权声明:本文标题:python-docx 复制一页_python 怎么用docx读取word的某一页然后放到新的word文档中?... 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726312063h934587.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论