Python实现将doc转化pdf格式文档的方法


Posted in Python onJanuary 19, 2018

本文实例讲述了Python实现将doc转化pdf格式文档的方法。分享给大家供大家参考,具体如下:

#-*- coding:utf-8 -*-
# doc2pdf.py: python script to convert doc to pdf with bookmarks!
# Requires Office 2007 SP2
# Requires python for win32 extension
import sys, os
from win32com.client import Dispatch, constants, gencache
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():
  print(len(sys.argv))
  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:
    input = u'BA06007013.docx'#word文档的名称
    output = u'BA06007013.pdf'#pdf文档的名称
  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__':
  print("hello")
  rc = main()
  if rc:
    sys.exit(rc)
  sys.exit(0)

php调用py程序

<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>项目查重检测系统</title>
  <style type="text/css">
    html{font-size:16px;}
    fieldset{width:1080px; margin: 0 auto;}
    legend{font-weight:bold; font-size:14px;}
    label{float:left; width:120px; margin-left:10px;}
    .left{margin-left:120px;}
    .input{width:150px;}
    span{color: #666666;}
  </style>
  <script language=JavaScript>
  <!--
  // function InputCheck(CheckForm)
  // {
  //  if (CheckForm.projectname.value == "" )
  //  {
  //   alert("请输入项目名称!");
  //   CheckForm.projectname.focus();
  //   return (false);
  //  }
  //  if (document.getElementById("projectsumb").value== "" )
  //  {
  //   alert("请输入项目简介!");
  //   CheckForm.projectname.focus();
  //   return (false);
  //  }
 }
  </script>
</head>
<body>
<div>
<fieldset>
<legend>项目查重检测系统</legend>
<form name="CheckForm" method="post" action="index.php" onSubmit="return InputCheck(this)">
  <div>
  <br/>
  <label for="projectname" class="label">项目名称:</label>
  <input id="projectname" name="projectname" type="text" style="width: 400px"   class="input" />
  <divp/>
  <div>
  <br/>
  <label for="projectsumb" class="label">项目简介:</label>
  <textarea name="projectsumb" id="projectsumb" style="height:400px;width:800px;"></textarea>
  <div/>
  <div>
  <br/>
  <br/>
  <input type="submit" name="submit" value=" 检 测 " class="left" />
  </div>
    <div>
  <br/>
  <label name="result" class="label">检测结果:</label>
  <label name="outresult" class="label"></label>
  <br/>
  <div/>
</form>
<br/>
<br/>
</div>
</body>
</html>
<?php
  $name=mb_convert_encoding($_POST['projectname'], "GBK","UTF-8");
  // $sumb=mb_convert_encoding($_POST['projectsumb'], "GBK","UTF-8");
  // $path1="../docTopdf/commFile/test.doc";
  $program="D:/Users/Administrator/Anaconda3/python ../docTopdf/DocToPdf/test1.py"; #注意使用绝对路径.$name."".$sumb
  $output = exec($program)
  // $output = nl2br(shell_exec($program));
  echo mb_convert_encoding ($output,"UTF-8", "GBK");
?>

更多Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python判断IP地址合法性的方法实例
Mar 13 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python实现多线程的两种方式分析
Aug 29 Python
python提取log文件内容并画出图表
Jul 08 Python
Python3内置模块random随机方法小结
Jul 13 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
django项目中新增app的2种实现方法
Apr 01 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
python 基于opencv去除图片阴影
Jan 26 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 #Python
python机器学习理论与实战(二)决策树
Jan 19 #Python
Python三种遍历文件目录的方法实例代码
Jan 19 #Python
python机器学习理论与实战(一)K近邻法
Jan 28 #Python
python机器学习理论与实战(六)支持向量机
Jan 19 #Python
Python logging管理不同级别log打印和存储实例
Jan 19 #Python
python机器学习理论与实战(五)支持向量机
Jan 19 #Python
You might like
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
判断用户是否在线的代码
2011/03/05 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python将xml和xsl转换为html的方法
2015/03/10 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python字符串中的单双引
2017/02/16 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python多线程与多进程及其区别详解
2019/08/08 Python
如何基于python实现归一化处理
2020/01/20 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
三星美国官网:Samsung美国
2017/02/06 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
三年级科学教学反思
2014/01/29 职场文书
文秘大学生求职信
2014/02/25 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
PL350与SW11的比较
2021/04/22 无线电
Python中如何处理常见报错
2022/01/18 Python
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android