0
Q
处理chm文件
A
回答
1
0
我已经与PyCHM努力创建简单thumbnailer的从.chm文件提取封面图片。这里是所有那些谁在未来找到这个问题的代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import chm.chm as chm
from bs4 import BeautifulSoup
from PIL import Image
import urlparse
try:
from cStringIO import StringIO
except:
from StringIO import StringIO
class CHMFile:
def __init__(self, file_name):
self.chmfile = chm.CHMFile()
self.chmfile.LoadCHM(file_name)
def create_thumb(self, out_file):
image = None
area = 0 # cover will propably be the biggest image from home page
iui = self.chmfile.ResolveObject(self.chmfile.home)
home = self.chmfile.RetrieveObject(iui[1])[1] # get home page (as html)
tree = BeautifulSoup(home)
for img in tree.find_all('img'):
src_attr = urlparse.urljoin(self.chmfile.home, img.get('src'))
chm_image = self.chmfile.ResolveObject(src_attr)
png_data = self.chmfile.RetrieveObject(chm_image[1])[1] # get image (as raw data)
png_img = Image.open(StringIO(png_data))
new_width, new_height = png_img.size
new_area = new_width * new_height
if(new_area > area and new_width > 50 and new_height > 50): # to ensure image is at least 50x50
area = new_area
image = png_img
if image:
image.save(out_file, format="PNG")
if __name__ == '__main__':
import sys
if len(sys.argv) != 3:
print 'Create thumbnail image from an chm file'
print 'Usage: %s INFILE OUTFILE' % sys.argv[0]
else:
chm = CHMFile(sys.argv[1])
chm.create_thumb(sys.argv[2])
相关问题
- 1. 从.CHM文件执行批处理文件时出错
- 2. PDF到CHM处理库python3
- 3. 网络CHM文件
- 4. 显示CHM文件
- 5. 将rtf文件转换为chm文件?将hlp文件转换为chm文件?
- 6. chm文件下载问题
- 7. 如何比较CHM文件
- 8. 如何从另一个CHM帮助文件中打开CHM帮助文件
- 9. 在主chm文件窗口中合并chm文件中的打开主题
- 10. 使用SandCastle将.chm文件隐藏到msdn格式的.chm中
- 11. .chm文件在Matlab中给定索引页处打开
- 12. 文件处理
- 13. 文件处理
- 14. 从.chm文件部署api文档
- 15. 文件处理和文件
- 16. 清理批处理文件
- 17. 批处理文件命令/处理
- 18. Windows批处理文件处理 - 循环
- 19. 不要处理已处理的文件?
- 20. 处理在批处理文件
- 21. 使用ehcache处理文件处理
- 22. 批处理脚本来处理文件
- 23. android文件处理
- 24. git:hook处理文件?
- 25. 处理HDFS文件
- 26. 文件处理C++
- 27. perl - 文件处理
- 28. 处理CSV文件
- 29. 批处理文件“”
- 30. 文件流处理
有没有一些文件或一些基本的用法描述? – xralf 2011-12-27 15:43:06
pychm是只读的。 – 2012-09-12 09:54:34
这是我的[从chm文件中提取所有html页面的配方](http://code.activestate.com/recipes/502221-extracting-data-from-chm-microsoft-compiled-html/) – jcubic 2017-01-10 12:44:41