zoukankan      html  css  js  c++  java
  • python3安装pdfminer并使用

    1.python3不同与2版本不能使用pdfminer

    pip install pdfminer3k
    

    2.使用pdfminer解析相应文档并保存到相应的文件夹中

    # encoding : udf-8
    
    """
    解析pdf文本保存到txt文件中
    """
    from pdfminer.converter import PDFPageAggregator
    from pdfminer.layout import LAParams, LTTextBoxHorizontal
    from pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreter
    from pdfminer.pdfparser import PDFDocument, PDFParser
    
    path = 'E:\force.pdf'
    
    
    def parse():
        fp = open(path, 'rb')   # 以二进制读模式打开
        praser = PDFParser(fp)
        # 创建一个PDF文档
        doc = PDFDocument()
        # 连接分析器 与文档对象
        praser.set_document(doc)
        doc.set_parser(praser)
    
        # 提供初始化密码
        # 如果没有密码 就创建一个空的字符串
        doc.initialize()
    
        # 检测文档是否提供txt转换,不提供就忽略
        if not doc.is_extractable:
            raise PDFTextExtractionNotAllowed
        else:
            # 创建PDf 资源管理器 来管理共享资源
            rsrcmgr = PDFResourceManager()
            # 创建一个PDF设备对象
            laparams = LAParams()
            device = PDFPageAggregator(rsrcmgr, laparams=laparams)
            # 创建一个PDF解释器对象
            interpreter = PDFPageInterpreter(rsrcmgr, device)
    
            # 循环遍历列表,每次处理一个page的内容
            for page in doc.get_pages():  # doc.get_pages() 获取page列表
                interpreter.process_page(page)
                # 接受该页面的LTPage对象
                layout = device.get_result()
                for x in layout:
                    if isinstance(x, LTTextBoxHorizontal):
                        with open(r'E:\pdf1.txt', 'a') as f:
                            results = x.get_text()
                            print(results)
                            f.write(results + '
    ')
    
    if __name__ == '__main__':
        parse()
  • 相关阅读:
    swoole入门abc
    PHP实现定时任务(非linux-shell方式,与操作系统无关)
    PHP经典算法题
    lumen使用CORS解决跨域问题
    轻松搞定 JS 的this、call和apply
    Nginx与PHP工作原理
    PHP的cURL扩展库使用详解
    PHP 中的 cURL 爬虫实战基础
    jvm误区--动态对象年龄判定
    从源码分析如何优雅的使用 Kafka 生产者
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/11488949.html
Copyright © 2011-2022 走看看