2013-10-11 3 views
0

저는 여러 컴퓨터에서 계속 업데이트되도록 Pastebin을 사용하여 파이썬 프로그램의 코드를 저장하고 있습니다. 나는 지금 비슷하게 업데이트 된 도움말 창을 유지하려고 노력 중이다. .chm 파일을 사용하여 전체 도움말 대화 상자를 단일 파일로 유지할 수 있지만 파일이 텍스트로 잘 변환되지 않는 것을 보았습니다. 어떻게 .CHM 도움말 파일을 파이썬 텍스트로 저장할 수 있습니까?

은 내가 메모장 파일 ("Viewhlp.chm")를 열고 Pastebin에 텍스트를 복사 한 다음 .chm 파일을 다시 시도하는 아래의 스크립트를 사용 Microsoft에서 샘플 .chm 파일을 사용했다. 이것은 작동하지 않습니다. 직접 열 때 "파일을 열 수 없습니다"라는 메시지가 나타나며 PyWin32에서 무시됩니다. 파이썬으로로드 할 수있는 도움말 대화 상자의 다른 파일 형식이 있습니까?

import urllib2, sys 

helpUrl = "http://pastebin.com/raw.php?i=a8rF2i8a" 
originalPath = "Viewhlp.chm" 
newPath = "NewHlp.chm" 

try: 
    helpData = urllib2.urlopen(helpUrl) 
except urllib2.URLError: 
    sys.exit() 

currentHelp = helpData.read() 
with open(newPath, mode="wb") as helpFile: 
    helpFile.write(currentHelp) 

# briefly display using PyWin32 or just open the chm files directly 
import win32help 
win32help.HtmlHelp(0, None, win32help.HH_INITIALIZE, None) 
link = win32help.HH_AKLINK() 
link.indexOnFail = 1 
link.url = "" 
link.msgText = "" 
link.msgTitle = "" 
link.window = "" 
win32help.HtmlHelp(0, originalPath, win32help.HH_KEYWORD_LOOKUP, link) 
win32help.HtmlHelp(0, newPath, win32help.HH_KEYWORD_LOOKUP, link) 

답변

1

메모장은 인쇄되지 않는 문자를 올바르게 표시하지 않습니다. 아마도 가장 쉬운 방법은 .chm을 base64로 인코딩 한 다음 인코딩 된 버전을 메모장에서 열어 pastebin에 복사하는 것입니다. 그런 다음을 decode 당신은 그것을 읽을 때이 내 Windows 시스템에 "일반/텍스트 전용"프린터를 설치하고 다음을 선택하고 "인쇄 선택하여처럼

currentHelp = base64.b64decode(helpData.read()) 
0

한 가지 방법 나는 일/문서를 변환 연결된 응용 프로그램에서 인쇄하려고 할 때 나타나는 인쇄 대화 상자에서 "파일"옵션을 선택하십시오.

이렇게하면 일반 텍스트 파일이 인쇄됩니다. 비록 시도한 적은 없지만 아마 자동화 할 수있는 방법이있을 것입니다.

관련 문제