- import sys, os
- from win32com.client import Dispatch, constants, gencache
- def usage():
- sys.stderr.write ("doc2pdf.py input [output]")
- sys.exit(2)
- def doc2pdf(input, output):
- w = Dispatch("Word.Application")
- try:
- doc = w.Documents.Open(input, ReadOnly = 1)
- doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF,
- Item = constants.wdExportDocumentWithMarkup, CreateBookmarks = constants.wdExportCreateHeadingBookmarks)
- return 0
- except:
- return 1
- finally:
- w.Quit(constants.wdDoNotSaveChanges)
- # Generate all the support we can.
- def GenerateSupport():
- # enable python COM support for Word 2007
- # this is generated by: makepy.py -i "Microsoft Word 12.0 Object Library"
- gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)
- def main():
- if (len(sys.argv) == 2):
- input = sys.argv[1]
- output = os.path.splitext(input)[0]+'.pdf'
- elif (len(sys.argv) == 3):
- input = sys.argv[1]
- output = sys.argv[2]
- else:
- usage()
- if (not os.path.isabs(input)):
- input = os.path.abspath(input)
- if (not os.path.isabs(output)):
- output = os.path.abspath(output)
- try:
- GenerateSupport()
- rc = doc2pdf(input, output)
- return rc
- except:
- return -1
- if __name__=='__main__':
- rc = main()
- if rc:
- sys.exit(rc)
- sys.exit(0)
- #该片段来自于http://www.codesnippet.cn/detail/091020136322.html
来源: http://www.codesnippet.cn/detail/091020136322.html