python-docx 复制一页_python 怎么用docx读取word的某一页然后放到新的word文档中?...

编程知识 行业动态 更新时间:2024-06-13 00:17:39

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文档中?...

本文发布于:2023-03-25 13:39:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/29cee44489eb9713f97ddb03f06f5669.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:到新   文档   docx   python   word

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!