1 import logging
2 logger = logging.getLogger('camelot.view.export.word')
3
5 import tempfile
6 import os
7 from camelot.view import art
8 html_fd, html_fn = tempfile.mkstemp(suffix='.html')
9 html_file = os.fdopen(html_fd, 'wb')
10 html_file.write(html.encode('utf-8'))
11 html_file.close()
12
13 try:
14 import pythoncom
15 import win32com.client
16 pythoncom.CoInitialize()
17 word_app = win32com.client.Dispatch("Word.Application")
18 except Exception, e:
19 """We're probably not running windows, so try abiword"""
20 logger.warn('unable to launch word', exc_info=e)
21 os.system('abiword "%s"'%html_fn)
22 return
23
24 doc_fd, doc_fn = tempfile.mkstemp(suffix='.doc')
25 os.close(doc_fd)
26 word_app.Visible = True
27 doc = word_app.Documents.Open(art.file_('empty_document.doc'))
28 word_app.ActiveDocument.SaveAs(doc_fn)
29 section = doc.Sections(1)
30 section.Range.InsertFile(FileName=html_fn)
31