# -*- coding: utf-8 -*-

 import os
import os.path
import logging
import pdfkit original_chm = r'C:\Users\hushaojun\Documents\canoe\Help01\CAPLfunctions.chm'
root_dir = r'C:\Users\hushaojun\Documents\canoe\Help01\canoe\Topics'
seperator = os.sep # HH.EXE -decompile <输出路径> <目标chm文件> logging.basicConfig(level=logging.WARNING,
format='%(asctime)s %(pathname)s %(filename)s %(funcName)s [line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename='all_file_name.log',
filemode='w+') #深度优先算法
def recursionFunction(level, path):
for file_content in os.listdir(path): #列举显示所有文件夹下的内容
#“-”用于显示目录层次结构
full_path_name = os.path.join(path, file_content)
print('-'*(level+1) + full_path_name) if os.path.isdir(full_path_name): #如果是文件夹就递归显示
recursionFunction(level+1, full_path_name)
else: #如果是文件那就要直接显示
(shotname, extension) = os.path.splitext(file_content) logging.error('文件全名为:' + full_path_name)
print('文件名为:' + shotname)
print('文件后缀名为:' + extension) pdf_file_name = os.path.join(path, shotname + '.pdf') if (not os.path.exists(pdf_file_name)) and ((extension == '.htm') or (extension == '.html')):
try:
pdfkit.from_file(full_path_name, pdf_file_name)
except OSError:
print('just skip!')
except Exception as e:
print(type(e)) if __name__ == '__main__':
decomplile_cmd = 'HH.EXE -decompile %s %s' % (root_dir, original_chm)
os.system(decomplile_cmd)
recursionFunction(0, root_dir)

python反编译chm文件并生成pdf文件的更多相关文章

  1. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  2. pdf文件流生成pdf文件

    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Code.Login Starr_mode ...

  3. Python数据生成pdf文件

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  4. python之reportlab生成PDF文件

    项目需要,需要自动生成PDF测试报告.经过对比之后,选择使用了reportlab模块. 项目背景:开发一个测试平台,供测试维护测试用例,执行测试用例,并且生成测试报告(包含PDF和excel),将生成 ...

  5. python反编译工具

    开发类在线工具:https://tool.lu/一个反编译网站:https://tool.lu/pyc/ 一看这个标题,就是搞坏事用的, 用 java 写程序多了,很习惯用反编译工具了,而且玩java ...

  6. Itext生成pdf文件

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  7. 3.JasperReports学习笔记3-在浏览器生成PDF文件

    转自:https://i.cnblogs.com/posts?categoryid=921197 一.新建web工程,导入jasperreports所需的jar包,配置web.xml <serv ...

  8. 【Java】使用iText生成PDF文件

    iText介绍 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  9. 转:在VS2010下编译、调试和生成mex文件

    最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译.调试.生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是 ...

随机推荐

  1. nginx网站攻击防护

    1.上上个月架构全部迁移上云以后,总的来说比较稳定,业务量也上来,可爱的坏人也来了,7X24小时不停恶意攻击我的网站,第一次收到报警是网站流入流量1分钟以内连续3次超过1000000bps,换算下1M ...

  2. 简析Window、Activity、DecorView以及ViewRoot之间的错综关系

    一.职能简介 Activity Activity并不负责视图控制,它只是控制生命周期和处理事件.真正控制视图的是Window.一个Activity包含了一个Window,Window才是真正代表一个窗 ...

  3. Caffe中deploy.prototxt 和 train_val.prototxt 区别

    之前用deploy.prototxt 还原train_val.prototxt过程中,遇到了坑,所以打算总结一下 本人以熟悉的LeNet网络结构为例子 不同点主要在一前一后,相同点都在中间 train ...

  4. [转]RSA,DSA等加解密算法介绍

    From : http://blog.sina.com.cn/s/blog_a9303fd90101cgw4.html 1)      MD5/SHA MessageDigest是一个数据的数字指纹. ...

  5. exchange 2010

    Set-MailboxFolderPermission dalian:\Calendar -User Default -AccessRights Reviewer C:\>$rooms = Ge ...

  6. 以双斜杠//开头的URL的含义

    在HTML网页中,有时会发现类似于//www.studyofnet.com/news/1341.html这样的代码,那么,这种以双斜杠//开头的URL的含义是什么呢? 在WEB网页中,有时会发现类似下 ...

  7. C#自带类库实现邮件发送

    1.首先引入命名空间using System.Net.Mail; 2.将发送的邮件的功能封装成一个类,该类中包含了发送邮件的基本功能:收件人(多人),抄送(多人),发送人,主题,邮件正文,附件等,封装 ...

  8. mybatis中sql标签、where标签、foreach标签用法

    <sql id="query_user_where"> <!-- 如果 userQueryVo中传入查询条件,再进行sql拼接--> <!-- tes ...

  9. qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""

    转载:https://forum.qt.io/topic/97484/qt-5-12-make-mingw-32-release/12 I build Qt 5.12 with MinGW 7.3.0 ...

  10. 如何查看Isilon的节点的CPU的信息?

    使用Isilon自带的命令 isi_hw_status 使用如下的命令 dmidecode --type processor 笔者只是想了解一下F800的CPU有多少个core.上面的命令都可以获得这 ...