逐梦者
逐梦者

Python基于win32com和MSoffice2007+批量word转pdf

Python基于win32com和MSoffice2007+批量word转pdf

说明:该程序基于Python 3.7+

原版本为2.7+无法运行到最新的python上

站长对其进行了修改


 

# -*- coding:utf-8 -*-
# doc2pdf.py: python script to convert doc to pdf with bookmarks!
# Requires Office 2007 SP2
# Requires python for win32 extension
import glob as gb
import importlib
import sys
importlib.reload(sys)
#sys.setdefaultencoding(‘utf8’)
”’
参考:http://blog.csdn.net/rumswell/article/details/7434302
”’
import sys, os
from win32com.client import Dispatch, constants, gencache
# from config import REPORT_DOC_PATH,REPORT_PDF_PATH
REPORT_DOC_PATH = ‘D:/2/word/’
REPORT_PDF_PATH = ‘D:/2/pdf/’
# Word转换为PDF
def word2pdf(filename):
 input = filename + ‘.docx’
 output = filename + ‘.pdf’
 pdf_name = output
 # 判断文件是否存在
 os.chdir(REPORT_DOC_PATH)
 if not os.path.isfile(input):
  print (u’%s not exist’ % input)
  return False
 # 文档路径需要为绝对路径,因为Word启动后当前路径不是调用脚本时的当前路径。
 if (not os.path.isabs(input)): # 判断是否为绝对路径
  # os.chdir(REPORT_DOC_PATH)
  input = os.path.abspath(input) # 返回绝对路径
 else:
  print (u’%s not absolute path’ % input)
  return False
 if (not os.path.isabs(output)):
  os.chdir(REPORT_PDF_PATH)
  output = os.path.abspath(output)
 else:
  print (u’%s not absolute path’ % output)
  return False
 try:
  print (input, output)
  # 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)
  # 开始转换
  w = Dispatch(“Word.Application”)
  try:
   doc = w.Documents.Open(input, ReadOnly=1)
   doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF, \
         Item=constants.wdExportDocumentWithMarkup,
         CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
  except:
   print (‘ exception’)
  finally:
   w.Quit(constants.wdDoNotSaveChanges)
  if os.path.isfile(pdf_name):
   print (‘translate success’)
   return True
  else:
   print (‘translate fail’)
   return False
 except:
  print (‘ exception’)
  return -1
if __name__ == ‘__main__’:
 # img_path = gb.glob(REPORT_DOC_PATH + “*”)
 # for path in img_path:
 #  print path
 #  rc = word2pdf(path)
 # rc = word2pdf(‘1’)
 # print rc,
 # if rc:
 #  sys.exit(rc)
 # sys.exit(0)
 import os
 for dirpath, dirnames, filenames in os.walk(REPORT_DOC_PATH):
  for file in filenames:
   fullpath = os.path.join(dirpath, file)
   print (fullpath, file)
   rc = word2pdf(file.rstrip(‘.docx’))

 

由于网上版本毕竟老旧基于Python 2现在修改基于python 3 和office 365


路径是使用时候需要建立

如图的文件夹

‘D:/2/word/’   将word文件放到这里
‘D:/2/pdf/’      空的文件夹存放pdf
编译好的windows应用下载 解压即用不用安装依赖
点击下载 SHA1:0838C9780A8D8561EC3CA2C05469D129A8563811
没有标签
首页      文章      Python基于win32com和MSoffice2007+批量word转pdf

发表评论

textsms
account_circle
email

Captcha Code

逐梦者

Python基于win32com和MSoffice2007+批量word转pdf
说明:该程序基于Python 3.7+ 原版本为2.7+无法运行到最新的python上 站长对其进行了修改   # -*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc…
扫描二维码继续阅读
2021-05-15