zoukankan      html  css  js  c++  java
  • python 比对PDF文件

    基本思路:

    1.读取pdf内容,存放到不同的 list

    2.比较 list 的相似度

    ------------------------ 实现-------------------------

    1.PDF 文件读取,使用库 pdfminer

    def get_txt_from_pdf(path, file_name):
        # 获取文档对象
        fp = open(os.path.join(path, file_name), "rb")
        # 创建一个PDF文档解释器
        parser = PDFParser(fp)
        # PDF文档的对象
        doc = PDFDocument()
        # 连接解释器和文档对象
        parser.set_document(doc)
        doc.set_parser(parser)
        # 初始化文档
        doc.initialize('')
        # 创建PDF资源管理器
        resource = PDFResourceManager()
        # 参数分析器
        laparam = LAParams()
        # 创建一个聚合器
        device = PDFPageAggregator(resource, laparams=laparam)
        # 创建PDF页面解释器
        interpreter = PDFPageInterpreter(resource, device=device)
        result = []
        # 使用文档对象得到页面的集合
        for page in doc.get_pages():
            # 使用页面解释器来读取
            interpreter.process_page(page)
    
            # 使用聚合器来获取内容
            layout = device.get_result()
    
            for out in layout:
                if hasattr(out, "get_text"):
                    result.append(out.get_text())
        return result

    借鉴自:https://www.cnblogs.com/banshaohuan/p/6877931.html

    2.相似度比较,用 difflib 库

    ## 核心代码 ##
    ##############################
    b_content = pldCommon.get_txt_from_pdf(benchmark_file_path, self.file_name) t_content = pldCommon.get_txt_from_pdf(temp_file_path, self.file_name) # 对比 diff = difflib.SequenceMatcher(None, b_content, t_content) similarity_rate = diff.ratio()

    3.如果相似度不为1,自行用beyond compare对比。也可以用 difflib.HtmlDiff() 生成对比文件

  • 相关阅读:
    网页端打开手机上的app
    iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)
    自定义 URL Scheme 完全指南
    App开发流程之加密工具类
    iOS8系统H264视频硬件编解码说明
    人脸识别
    app上线具体流程
    第三方分享
    Android摸索-二、解决Android SDK Manager下载太慢问题
    Android摸索一环境搭建
  • 原文地址:https://www.cnblogs.com/dannyyao/p/11283073.html
Copyright © 2011-2022 走看看