去除pdf转word后 空格和长空格,统一处理格式

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路去除pdf转word后 空格和长空格,统一处理格式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

# encoding: utf-8
'''
@author: JHC 
@license: None
@contact: JHC000abc@gmail.com
@file: test2.py
@time: 2022/08/21/ 17:52
@desc:去除pdf转word后 空格和长空格,统一处理格式
'''
import os
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx.shared import Pt, Inches



def get_file_list(path):
    '''
    获取待处理文本路径列表
    :param path: 待处理文本根目录
    :return: 待处理文本路径列表
    '''
    file_lis = []
    for i,j,k in os.walk(path):
        for _k in k:
            if _k.split(".")[-1] == "doc" or _k.split(".")[-1] == "docx":
                file = os.path.join(i,_k)
                file_lis.append(file)
    return file_lis

def read_txt_lis(file_lis):
    '''
    1. 读取原始doc 内容,并将多余空行去除
    2. 设置样式,重新写回新的文本中保存
    :param file_lis: 待处理文本路径列表
    :return:
    '''
    for file in file_lis:
         # 想获取的文档文件名,这里是相对路径。
        out_path = os.path.join(os.path.split(file)[0],"res")
        if not os.path.exists(out_path):
            os.makedirs(out_path)
        else:
            pass
        doc = Document(file)
         # print(out_path)
        out_file = os.path.join(out_path,os.path.split(file)[-1])
        # print("out_file",out_file)
        header_lis = []
        num = 0
        num2 = 0
        for k,v in enumerate(doc.paragraphs):
            # print(k,v.text)
            if v.text == "":
                num += 1
                if num == 1:
                    header_lis.append(v.text)
                else:
                    pass
            else:
                header_lis.append(v.text)


        # 保存文本格式处理
        doc2 = Document()
        for i in header_lis:
            p = doc2.add_paragraph()
            if i == "":
                num2 += 1
            else:
                # 添加文字
                run = p.add_run(i.replace("	","").replace("		",""))
                # 字体
                run.font.name = u"宋体"
                run._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
                # 字体大小
                run.font.size = Pt(12)
                # 行间距
                p.paragraph_format.line_spacing = Pt(20)
                # 段前段后磅数
                p.paragraph_format.space_before = Pt(0)
                p.paragraph_format.space_after = Pt(0)
                # 首行缩进 0.85 cm = 两空格
                p.paragraph_format.first_line_indent = run.font.size*2
                if num2 < 1:
                    # 文字居中
                    p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
                else:
                    # 文字居左
                    p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
        # print(out_file)
        doc2.save(out_file)
        # break

if __name__ == '__main__':
    path = R"E:\Desktop\第一组"
    file_lis = get_file_list(path)
    read_txt_lis(file_lis)




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156907.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!