• 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() 生成对比文件

  • 相关阅读:
    图标字体化浅谈
    HTML5 data-* 自定义属性
    NodeJS初识
    [转]响应式web设计之CSS3 Media Queries
    [转]移动端web页面使用字体的思考
    运用@media实现网页自适应中的几个关键分辨率
    不同内核浏览器的差异以及浏览器渲染简介
    动画库tween.js
    ORACLE查看表空间使用率
    oracle存储过程游标循环
  • 原文地址:https://www.cnblogs.com/dannyyao/p/11283073.html
Copyright © 2020-2023  润新知