python按页码和页码范围拆分word并生成pdf

该代码段使用Python的win32com.client库来操作Word文档,根据指定的页码范围提取页面,创建新文档,然后将选定页合并成一个新的Word文档,最后将这个Word文档保存为PDF。如果页码超出范围,程序会抛出错误。
摘要由CSDN通过智能技术生成

python按页码范围拆分word并生成pdf

先对页码进行提取,再对需要的页数进行抽取并合成一个word,再将word保存成pdf

from win32com.client import Dispatch, DispatchEx

def copy_doc(doc, pdf_path,start_page=1,end_page=0):
 # 打开文件,获得word的页数
    word = Dispatch("Word.Application")
    word.Visible = 0
    word.DisplayAlerts = 0
    doc_ = word.Documents.Open(doc)
    pages = doc_.ActiveWindow.Panes(1).Pages.Count
    
   # 新建word,设置保存路径
    doc_add = word.Documents.Add()
    newFile = f'test_new{start_page}-{end_page}.docx'
    doc_add.SaveAs(os.path.abspath(newFile))
    doc_new = word.Documents.Open(os.path.abspath(newFile))
    # 页码判断
    if start_page == 1 and end_page == 0:
        end_page = pages
    elif start_page <1 or end_page>pages or start_page > end_page:
        raise "请检查页码"
    # 进行写入新的word中
    for i in range(start_page, end_page+1):
        objRectangles = doc_.ActiveWindow.Panes(1).Pages(i).Rectangles
        for a in range(objRectangles.Count):
            objRectangles.Item(a + 1).Range.Copy()
            doc_new.Range(doc_new.Content.End - 1, doc_new.Content.End - 1).Paste()
	
	# 设置路径保存pdf,并且删除新建的word 
    pdf_name = doc.split("\\")[-1].split(".")
    name = pdf_name[0]+f"{start_page}-{end_page}.pdf"
    path = os.path.join(pdf_path,name)
    doc_new.SaveAs(path, 17)
    doc_new.Close()
    doc_.Close()
    word.Quit()
    os.remove(newFile)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用PythonWord文件按照页码进行拆分,可以使用python-docx库来处理Word文档。以下是一个简单的示例代码,演示如何按照页码拆分Word文件: ```python from docx import Document def split_word_by_page(input_file_path, output_prefix): doc = Document(input_file_path) page_count = len(doc.sections) for i in range(page_count): page = doc.sections[i] start = page.start_type end = page.end_type new_doc = Document() new_doc.sections.append(page) output_file_path = f"{output_prefix}_{i+1}.docx" new_doc.save(output_file_path) print(f"Page {i+1} saved to {output_file_path}") # 使用示例 input_file_path = "input.docx" # 输入文件路径 output_prefix = "output" # 输出文件前缀 split_word_by_page(input_file_path, output_prefix) ``` 在上述代码中,我们首先通过`Document`类加载Word文件。然后,我们使用`sections`属性获取所有的页面,并获取每个页面的起始和结束类型。接下来,我们创建一个新的`Document`对象,并将当前页面添加到新文档中。最后,我们将新文档保存为独立的Word文件。 请注意,这个示例代码假设每个页面都是一个独立的节(section)。如果你的Word文档使用不同的方式来分隔页码,你可能需要根据具体情况进行适当的修改。 此外,为了运行此代码,你需要安装`python-docx`库。可以使用以下命令安装: ``` pip install python-docx ``` 希望这可以帮助你拆分Word文件!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值