-
Notifications
You must be signed in to change notification settings - Fork 45
/
doctopdf.py
65 lines (62 loc) · 1.92 KB
/
doctopdf.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by xiaoqin00 on 2017/7/8
#doc格式转成pdf
import sys, os
from win32com.client import Dispatch, constants, gencache
from optparse import OptionParser
# def usage():
# sys.stderr.write ("doc2pdf.py -i input -o [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():
input=options.input
output=options.output
# 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()
#判断路径是否是绝对路径
input = os.path.abspath(input)
output = os.path.abspath(output)
# 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
doc2pdf(input,output)
return
except:
return -1
if __name__=='__main__':
parser=OptionParser(usage='%prog [options]')
parser.add_option('-i','--in',dest='input',help='input file')
parser.add_option('-o','--out',dest='output',help='output file')
(options,args)=parser.parse_args()
main()
# rc = main()
# if rc:
# sys.exit(rc)
# sys.exit(0)