精华内容
下载资源
问答
  • python pdf转word

    千次阅读 2018-04-04 16:03:19
    自:https://yq.aliyun.com/articles/487610?spm=a2c4e.11153940.blogcont493499.12.655a7962KsKW7M1.安装pdfminer3k模块安装anaconda后,直接可以通过pip安装2.若安装不成功,可以试试下面方法首先下载pdfminer3k...

    转自:https://yq.aliyun.com/articles/487610?spm=a2c4e.11153940.blogcont493499.12.655a7962KsKW7M

    1.安装pdfminer3k模块

    安装anaconda后,直接可以通过pip安装

    2.若安装不成功,可以试试下面方法

    首先下载pdfminer3k:https://pypi.python.org/pypi/pdfminer3k;然后安装pdfminer,将下载好的pdfminer3k解压到D:或其他合适的盘符,通过win+r 打开运行窗口,输入cmd;输入D:切换到D盘,cd pdfminer3k(pdf解压的文件夹),输入setup.py install安装软件。


    from pdfminer.pdfparser import PDFParser, PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.layout import LAParams
    from pdfminer.converter import PDFPageAggregator
    from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
    
    def parse():
        #rb以二进制读模式打开本地pdf文件
        fn = open('test.pdf','rb')
        #创建一个pdf文档分析器
        parser = PDFParser(fn)
        #创建一个PDF文档
        doc = PDFDocument()
        #连接分析器 与文档对象
        parser.set_document(doc)
        doc.set_parser(parser)
    
        # 提供初始化密码doc.initialize("lianxipython")
        # 如果没有密码 就创建一个空的字符串
        doc.initialize("")
        # 检测文档是否提供txt转换,不提供就忽略
        if not doc.is_extractable:
            raise PDFTextExtractionNotAllowed
    
        else:
            #创建PDf资源管理器
            resource = PDFResourceManager()
            #创建一个PDF参数分析器
            laparams = LAParams()
            #创建聚合器,用于读取文档的对象
            device = PDFPageAggregator(resource,laparams=laparams)
            #创建解释器,对文档编码,解释成Python能够识别的格式
            interpreter = PDFPageInterpreter(resource,device)
            # 循环遍历列表,每次处理一页的内容
            # doc.get_pages() 获取page列表
            for page in doc.get_pages():
                #利用解释器的process_page()方法解析读取单独页数
                interpreter.process_page(page)
                #使用聚合器get_result()方法获取内容
                layout = device.get_result()
                #这里layout是一个LTPage对象,里面存放着这个page解析出的各种对象
                for out in layout:
                    #判断是否含有get_text()方法,获取我们想要的文字
                    if hasattr(out,"get_text"):
                        print(out.get_text())
                        with open('test.txt','a') as f:
                            f.write(out.get_text()+'\n')
    
    if __name__ == '__main__':
        parse()

    展开全文
  • PDF转Word,以及提取Word中图片里的文字 PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 软件截图: #!/usr/bin/python # -*- coding: gbk -*- ...

    PDF转Word,以及提取Word中图片里的文字

    PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除

    软件截图:
    在这里插入图片描述

    #!/usr/bin/python
    # -*- coding: gbk -*-
    
    import six
    from pdf2docx import Converter
    import zipfile  # 压缩包
    import os  # 文件库
    import pytesseract
    from tkinter import *
    import tkinter.filedialog
    from PIL import Image
    import shutil
    
    root = Tk()
    root.title('PDF转换WORD,TXT')
    root.geometry('580x300')
    
    PDF_FilePath = ''#用来保存PDF文件路径
    DOCX_FilePath = ''#用来保存Word文件路径
    TEXT_FilePth = ''#用来保存Text文件路径
    Image_BaseForder = 'C:\\Temp'#临时用来存放WORD中的图片,方便后续分析识别图片中的文字
    
    def Button1Anwser():
        global PDF_FilePath
        Path = Label(root, text='')
        PDF_FilePath = tkinter.filedialog.askopenfilename()
        Path.config(text = PDF_FilePath)
        Path.grid(row=2, column=0, sticky=W)
    
    def Button4Anwser():
        global DOCX_FilePath
        Path = Label(root, text='')
        DOCX_FilePath = tkinter.filedialog.askopenfilename()
        Path.config(text = DOCX_FilePath)
        Path.grid(row=6, column=0, sticky=W)
    
    def Button2Anwser():
        global PDF_FilePath
        global DOCX_FilePath
    
        if(PDF_FilePath == ""):
            Text = Label(root, text='')
            Text.config(text='请先选择PDF文件')
            Text.grid(row=3, column=1)
    
        DOCX_FilePath = PDF_FilePath.split('.')[0] + '.docx'
        Text = Label(root, text='')
        Text.config(text='开始转换')
        Text.grid(row=3, column=1)
    
        cv = Converter(PDF_FilePath)
        cv.convert(DOCX_FilePath, start=0, end=None)
        cv.close()
    
        Text = Label(root, text='')
        Text.config(text='转换完成')
        Text.grid(row=3, column=1)
    
        Path = Label(root, text='')
        Path.config(text=DOCX_FilePath)
        Path.grid(row=4, column=0, sticky=W)
    
    def Button3Anwser():
        global DOCX_FilePath
        global TEXT_FilePth
        global Image_BaseForder
    
        if(PDF_FilePath == ""):
            Text = Label(root, text='')
            Text.config(text='请先选择PDF文件')
            Text.grid(row=7, column=1)
    
        TEXT_FilePth = PDF_FilePath.split('.')[0] + '.txt'
        Text = Label(root, text='')
        Text.config(text='开始转换')
        Text.grid(row=7, column=1)
    
        ToText(DOCX_FilePath)
    
        Text = Label(root, text='')
        Text.config(text='转换完成')
        Text.grid(row=7, column=1)
    
        Path = Label(root, text='')
        Path.config(text=TEXT_FilePth)
        Path.grid(row=8, column=0, sticky=W)
    
        shutil.rmtree(Image_BaseForder)
    class Get_WordContent:
        def __init__(self, Word_Path):
            self.Word_Path = Word_Path
    
        # 将Word文档中的图片提取出来,存放到文件夹
        def Get_Image(self):
            global TEXT_FilePth
            Word_Path = self.Word_Path
            try:
                TEXT_FilePth = PDF_FilePath.split('.')[0] + '.txt'
                Doc = zipfile.ZipFile(Word_Path)
                #存放的文件夹名称要按照文档名称进行区分
                Image_Forder = Image_BaseForder + "\\" + PDF_FilePath.split("/")[-1].split('.')[0]
    
                if(os.path.exists(Image_Forder) == 0):
                    os.makedirs(Image_Forder)
    
                #进行图片的保存
                for Info in Doc.infolist():
                    if Info.filename.endswith((".jpg", '.jpeg', '.png', '.gif', 'bmp')):
                        Doc.extract(Info.filename, Image_Forder)
            except Exception as e:
                print(e)
            finally:
                pass
    
        def Get_Words(self):
            global TEXT_FilePth
            try:
                fd = open(TEXT_FilePth, 'w')
                Image_Forder = Image_BaseForder + "\\" + DOCX_FilePath.split("/")[-1].split('.')[0] + "\\word\\media"  # 图片路径
                if os.path.exists(Image_Forder) != 0:
                    for filename in os.listdir(Image_Forder):
                        words = ""
                        #获取每一张图片的文本信息
                        words = str(
                            pytesseract.image_to_string(Image.open(Image_Forder + "\\" + filename), lang="chi_sim"))
                        fd.write(words)
                fd.close()
            except Exception as e:
                print(e)
            finally:
                pass
    
    def ToText(WordPath):
        WordContent = Get_WordContent(WordPath)
        WordContent.Get_Image()
        WordContent.Get_Words()
    # -------------------------------------界面---------------------------------
    SelectFile = Button(root, text="待转换PDF", command=Button1Anwser,width=15, height=1, bg="DarkGray", fg="white")
    SelectFile.grid(row=1, column=0, sticky=W)
    
    SelectFile = Button(root, text="转Word", command=Button2Anwser, width=15, height=1, bg="DarkGray", fg="white")
    SelectFile.grid(row=3, sticky=W)
    
    SelectFile = Button(root, text="待提取文字Word", command=Button4Anwser,width=15, height=1, bg="DarkGray", fg="white")
    SelectFile.grid(row=5, column=0, sticky=W)
    
    SelectFile = Button(root, text="转Text", command=Button3Anwser, width=15, height=1, bg="DarkGray", fg="white")
    SelectFile.grid(row=7, sticky=W)
    
    Advice1 = Label(root, text='')
    Advice1.config(text='1 : PDF转WORD后,发现Word中的文字是以图片显示的情况下,进一步进行Word中针对图片的文字识别')
    Advice1.grid(row=9, column=0, sticky=W)
    
    Advice2 = Label(root, text='')
    Advice2.config(text='2 : 文字识别比不上网上需花钱的识别,会出现漏字,错字等情况,请提取后仔细检查')
    Advice2.grid(row=10, column=0, sticky=W)
    
    Advice3 = Label(root, text='')
    Advice3.config(text='3 : 转换过程可能很长,转换按钮一直处于按下状态,请等待“转换完成”字样提示')
    Advice3.grid(row=11, column=0, sticky=W)
    
    root.mainloop()
    
    展开全文
  • 另外,pdf文档中避免出现 ‘\n’ 等转义字符,否则可能会出现一些识别歧义。 使用情景:文件量大,且只对文本信息有要求的情况 import os from configparser import ConfigParser from io import StringIO from io ...

    第一种方法:多线程处理
    优点:可以同时处理多个文件,速度非常快。
    缺点:只能识别文字信息,对于图片等非文本内容无法识别;另外,pdf文档中避免出现 ‘\n’ 等转义字符,否则可能会出现一些识别歧义。
    使用情景:文件量大,且只对文本信息有要求的情况

    import os
    from configparser import ConfigParser
    from io import StringIO
    from io import open
    from concurrent.futures import ProcessPoolExecutor
    from pdfminer.pdfinterp import PDFResourceManager
    from pdfminer.pdfinterp import process_pdf
    from pdfminer.converter import TextConverter
    from pdfminer.layout import LAParams
    from docx import Document
    from docx.oxml.ns import qn
    from docx.shared import Pt
    
    
    # 将pdf解析成文本文件
    def read_from_pdf(file_path):
        with open(file_path, 'rb') as file:
            resource_manager = PDFResourceManager()    # pdf资源管理器 管理共享资源
            return_str = StringIO()  # 类文本文件对象
            lap_params = LAParams()  # 参数分析器
    
            device = TextConverter(resource_manager, return_str, laparams=lap_params)
            process_pdf(resource_manager, device, file)
            device.close() 
            content = return_str.getvalue()
            return_str.close()
            return content
    
    
    # 过滤掉控制字符
    def remove_control_characters(content):
        mpa = dict.fromkeys(range(13))
        return content.translate(mpa)
    
    
    # 将文本保存到word文档中
    def save_text_to_word(content, file_path):
        doc = Document()
        for line in content.split('\n'):
            paragraph = doc.add_paragraph()
            text = paragraph.add_run(remove_control_characters(line))
            text.font.size = Pt(15)
            text.font.name = 'Times New Roman'  # 控制是西文时的字体
            text.element.rPr.rFonts.set(qn('w:eastAsia'), u'楷体')
        doc.save(file_path)
    
    
    # pdf转word的整个过程打包
    def pdf_to_word(pdf_file_path, word_file_path):
        content = read_from_pdf(pdf_file_path)
        save_text_to_word(content, word_file_path)
    
    
    def main():
        config_parser = ConfigParser()
        config_parser.read('config.cfg', encoding='utf-8')
        config = config_parser['default']
    
        tasks = []
        with ProcessPoolExecutor(max_workers=int(config['max_worker'])) as executor:    # 为了多任务同时进行
            for file in os.listdir(config['pdf_folder']):
                extension_name = os.path.splitext(file)[1]
                if extension_name != '.pdf':
                    continue
                file_name = os.path.splitext(file)[0]
                pdf_file = config['pdf_folder'] + '/' + file
                word_file = config['word_folder'] + '/' + file_name + '.docx'
                print('正在处理:', file)
                result = executor.submit(pdf_to_word, pdf_file, word_file)   #  转到pdf_to_word函数
                tasks.append(result)
        while True:
            exit_flag = True
            for task in tasks:
                if not task.done():
                    exit_flag = False
            if exit_flag:
                print('完成')
                exit(0)
    
    
    if __name__ == '__main__':
        if __name__ == '__main__':
            main()
    
    

    这里用到config.cfg(配置文件)。在当前目录建立一个config.cfg文件,将一些重要的参数信息放在这个文件里面。如果觉得麻烦其实也可以直接写在代码中。
    config.cfg

    [default]
    pdf_folder=/Python_ALL/Python_File/3_Interest/testfile 
    word_folder=/Python_ALL/Python_File/3_Interest/testfile
    max_worker=3
    

    第二种方法:使用pdf2docx库来完成
    优点:使用包装好的库来进行处理,可以较完美地处理文本和图片等不同内容的信息,还原度较高。
    缺点:处理速度较慢,对pdf文档中一页一页进行识别。
    适用场景:文件量少,对pdf文档整体信息都有需求的情况。

    from pdf2docx import Converter
    from configparser import ConfigParser
    import os
    
    
    def main():
        config_parser = ConfigParser()
        config_parser.read('config.cfg', encoding='utf-8')
        config = config_parser['default']
    
        for file in os.listdir(config['pdf_folder']):
            extension_name = os.path.splitext(file)[1]
            if extension_name != '.pdf':
                continue
            file_name = os.path.splitext(file)[0]
            pdf_file = config['pdf_folder'] + '/' + file
            word_file = config['word_folder'] + '/' + file_name + '.docx'
    
            cv = Converter(pdf_file)
            cv.convert(word_file)
            cv.close()
    
    
    if __name__=='__main__':
        main()
    
    展开全文
  • python pdf2word pdf转word

    千次阅读 2019-11-28 10:18:51
    github链接:python-fan/pdf2word 使用: 1、clone或下载git clone https://github.com/Dontla/pdf2word.git 2、pip install -r requirements.txt安装依赖(安装过程可能会出小问题,比如我这里说跟tensorflow-...

    github链接:python-fan/pdf2word

    使用:
    1、clone或下载git clone https://github.com/Dontla/pdf2word.git
    2、pip install -r requirements.txt安装依赖(安装过程可能会出小问题,比如我这里说跟tensorflow-gpu冲突)
    3、修改config.cfg文件并创建文件夹
    在这里插入图片描述
    4、将需要转换的pdf文档放入pdf文件夹
    在这里插入图片描述
    5、执行程序
    在这里插入图片描述
    6、查看结果:空无一物
    在这里插入图片描述
    是不是加密pdf没法转?

    貌似这个可以免费转换,用它转了https://smallpdf.com/cn
    在这里插入图片描述
    转换后效果还行吧。。。
    在这里插入图片描述

    展开全文
  • python实现pdf转word

    2018-11-03 10:43:57
    python实现pdf转word,支持中英文转换,转换精度高,可以达到使用效果。
  • python pdf转换为word

    2020-06-13 12:42:09
    今天尝试了一下用pdf转换为word的操作,也是借鉴的别人的代码,地址为:https://github.com/python-fan/pdf2word,改了改,把多线程那些去掉了,然后这份代码有几个缺点,我说一下: 扫描版不能转换 转换出来主要...
  • python实现Pdf转Word

    千次阅读 2019-10-14 20:08:54
    python实现Pdf转Word ○ 运行 pip install -i https://pypi.doubanio.com/simple/ -r requirements.txt ○ 将需要转换的pdf文档复制到pdf文件夹 ○ 运行 python mian.py 如下图所示: 全部代码请参考: 未完待续 ...
  • Python PDF 转换为 word

    2020-11-13 17:15:06
    亲测可用 2020-11-03 https://www.cnblogs.com/shuchongzeishuai/p/13913477.html
  • 本文简介作者写的一个PDF转WordPython库pdf2docx,包括基本思路、功能、使用方法及样例。 1 基本思路 PDF文档遵循一定的规范1,例如精确定位了每个字符出现在页面上的坐标、根据坐标绘制的各种形状(线、矩形、...
  • 下面,胖哥用Python代码手把手教你:Pdf批量转Word。 整体实现解析: 整体上分为2步: 第一步读取PDF文件,第二步写入Word文件。 第一步: def read_from_pdf(file_path): with open(file_path, 'rb') as ...
  • PythonPDF转WORD

    千次阅读 2020-03-31 14:16:13
    可能起来会出现排版异常并且图片无法保存到.doc文件中。 正文开始: 需要安装依赖包 pdfminer3k pip install pdfminer3k-i https://pypi.tuna.tsinghua.edu.cn/simple 或者下载资源手动安装。任意选一种...
  • python实现pdf转word、txt

    千次阅读 2020-02-28 10:54:13
    前往下载pdf2word工具包 前往下载pdf2txt工具包 2、解压缩 对如下两个文件进行解压,当前我解压的路径设置在D:\python_app\下 3、安装对应模块 ctrl+r 输入cmd,进入命令行,然后进入本地虚拟环境,详情可参考建立...
  • 对于PDF转换成word文档,我想很多人都了解过,那就是需要付费,而且很贵,但是如果你会Python,只要你会Python这么问题都不再是问题。 pdf文件转换为word文件 Word文件转换为pdf文件 docdocx docx...
  • python实现pdf转word/txt

    万次阅读 2018-04-16 15:17:20
    也可以到官网https://pypi.python.org/pypi/pdfminer3k下载,解压,进入文件夹,输入命令setup.py install安装软件。 源代码 #!/usr/bin/python # -*- coding: utf-8 -*- import sys import importlib impo
  • python word转pdf

    千次阅读 2019-04-29 17:30:00
    使用python win32 库 调用word底层vba,将word转pdf 安装pywin32 pip install pywin32 python代码 from win32com.client import gencache from win32com.client import constants, gencache def createPdf...
  • 使用python win32 库 调用word底层vba,将word转pdf 安装pywin32 pip install pywin32 python代码 from win32com.client import gencache from win32com.client import constants, gencache def createPdf...
  • PDF转word python程序

    2021-05-13 19:28:27
    # pip install pdf2docx #安装依赖库 from pdf2docx import Converter ...docx_file = r'C:\Users\Administrator\Desktop\Python教程\02.docx' # convert pdf to docx cv = Converter(pdf_file) cv.convert(docx_fi
  • python word pdf

    2020-07-21 11:00:00
    批量将word转pdf import os import comtypes.client #相对路径可能报错,别问我怎么知道的。。。。。 file_path=r"D:\\PycharmProjects\\abc\\" out_file='' file_list=os.listdir(file_path) for word_path in ...
  • 大家好,我是辰哥在wps或者office里面可以将pdf转word,不过只能免费转前面5页,超过5页就需要会员。今天教大家一个Python办公小技巧:批量Pdf转Word ,这样可以自由想...
  • python 实用程序 | PDF Word

    万次阅读 多人点赞 2018-07-19 07:13:07
    虽然现在市面上有很多 pdf word 软件,比如 wps,但大多数的软件是要收费的,并且价格不菲。 前些天就有人叫我帮她把 pdf 文档word 的文档。因为 pdf 文档里面的内容有很多,如果全部打印的话,费用还是挺...
  • Python word转PDF

    千次阅读 2019-06-12 18:56:58
    from win32com.client import Dispatch from os import walk wdFormatPDF = 17 def doc2pdf(input_file): word = Dispatch('Word.Application') doc = word.Documents.Open(input_file) doc.SaveAs(i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 493
精华内容 197
关键字:

pythonpdf转word

python 订阅