Python实现doc转化pdf

python源码实现doc转化pdf

  1. #-*- coding:utf-8 -*-
  2.  
  3. # doc2pdf.py: python script to convert doc to pdf with bookmarks!
  4. # Requires Office 2007 SP2
  5. # Requires python for win32 extension
  6.  
  7. import sys, os
  8. from win32com.client import Dispatch, constants, gencache
  9.  
  10. def doc2pdf(input, output):
  11. w = Dispatch("Word.Application")
  12. try:
  13. doc = w.Documents.Open(input, ReadOnly = 1)
  14. doc.ExportAsFixedFormat(output, constants.wdExportFormatPDF,\
  15. Item = constants.wdExportDocumentWithMarkup, CreateBookmarks = constants.wdExportCreateHeadingBookmarks)
  16. return 0
  17. except:
  18. return 1
  19. finally:
  20. w.Quit(constants.wdDoNotSaveChanges)
  21.  
  22. # Generate all the support we can.
  23. def GenerateSupport():
  24. # enable python COM support for Word 2007
  25. # this is generated by: makepy.py -i "Microsoft Word 12.0 Object Library"
  26. gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)
  27.  
  28. def main():
  29. print(len(sys.argv))
  30. if (len(sys.argv) == 2):
  31. input = sys.argv[1]
  32. output = os.path.splitext(input)[0]+'.pdf'
  33. elif (len(sys.argv) == 3):
  34. input = sys.argv[1]
  35. output = sys.argv[2]
  36. else:
  37. input = u'BA06007013.docx'#word文档的名称
  38. output = u'BA06007013.pdf'#pdf文档的名称
  39. if (not os.path.isabs(input)):
  40. input = os.path.abspath(input)
  41. if (not os.path.isabs(output)):
  42. output = os.path.abspath(output)
  43. try:
  44. GenerateSupport()
  45. rc = doc2pdf(input, output)
  46. return rc
  47. except:
  48. return -1
  49.  
  50. if __name__=='__main__':
  51. print("hello")
  52. rc = main()
  53. if rc:
  54. sys.exit(rc)
  55. sys.exit(0)

php调用py程序

  1. <!DOCTYPE>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>项目查重检测系统</title>
  6. <style type="text/css">
  7. html{font-size:16px;}
  8. fieldset{width:1080px; margin: 0 auto;}
  9. legend{font-weight:bold; font-size:14px;}
  10. label{float:left; width:120px; margin-left:10px;}
  11. .left{margin-left:120px;}
  12. .input{width:150px;}
  13. span{color: #666666;}
  14. </style>
  15. <script language=JavaScript>
  16. <!--
  17.  
  18. // function InputCheck(CheckForm)
  19. // {
  20. // if (CheckForm.projectname.value == "" )
  21. // {
  22. // alert("请输入项目名称!");
  23. // CheckForm.projectname.focus();
  24. // return (false);
  25. // }
  26. // if (document.getElementById("projectsumb").value== "" )
  27. // {
  28. // alert("请输入项目简介!");
  29. // CheckForm.projectname.focus();
  30. // return (false);
  31. // }
  32. }
  33. </script>
  34. </head>
  35. <body>
  36. <div>
  37. <fieldset>
  38. <legend>项目查重检测系统</legend>
  39. <form name="CheckForm" method="post" action="index.php" onSubmit="return InputCheck(this)">
  40. <div>
  41. <br/>
  42. <label for="projectname" class="label">项目名称:</label>
  43. <input id="projectname" name="projectname" type="text" style="width: 400px" class="input" />
  44. <divp/>
  45.  
  46. <div>
  47. <br/>
  48. <label for="projectsumb" class="label">项目简介:</label>
  49. <textarea name="projectsumb" id="projectsumb" style="height:400px;width:800px;"></textarea>
  50. <div/>
  51.  
  52. <div>
  53. <br/>
  54. <br/>
  55. <input type="submit" name="submit" value=" 检 测 " class="left" />
  56. </div>
  57. <div>
  58. <br/>
  59. <label name="result" class="label">检测结果:</label>
  60. <label name="outresult" class="label"></label>
  61. <br/>
  62. <div/>
  63.  
  64. </form>
  65. <br/>
  66. <br/>
  67.  
  68. </div>
  69. </body>
  70. </html>
  71. <?php
  72. $name=mb_convert_encoding($_POST['projectname'], "GBK","UTF-8");
  73. // $sumb=mb_convert_encoding($_POST['projectsumb'], "GBK","UTF-8");
  74. // $path1="../docTopdf/commFile/test.doc";
  75. $program="D:/Users/Administrator/Anaconda3/python ../docTopdf/DocToPdf/test1.py"; #注意使用绝对路径.$name."".$sumb
  76. $output = exec($program)
  77. // $output = nl2br(shell_exec($program));
  78. echo mb_convert_encoding ($output,"UTF-8", "GBK");
  79. ?>

  

Python实现doc转化pdf的更多相关文章

  1. 利用LibreOffice转换ppt、doc转化pdf

    利用LibreOffice转换ppt.doc转化pdf LibreOffice下载地址:  http://www.libreoffice.org/download/libreoffice-fresh/ ...

  2. 用python将word转pdf、doc转docx等

    word ==> pdf def doc2pdf(file_path): """ word格式转换doc|docx ==> pdf :return: &quo ...

  3. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  4. 深入学习Python解析并解密PDF文件内容的方法

    前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...

  5. python从TXT创建PDF文件——reportlab

    使用reportlab创建PDF文件电子书一般都是txt格式的,某些电子阅读器不能读取txt的文档,如DPT-RP1.因此本文从使用python实现txt到pdf的转换,并且支持生成目录,目录能够生成 ...

  6. 【推荐分享】大量Python电子书籍教程pdf合集下载

    网上搜集的,点击即可下载,希望提供给有需要的人^_^   O'Reilly.Python.And.XML.pdf 2.02 MB   OReilly - Programming Python 2nd. ...

  7. 将python代码打印成pdf

    将python代码打印成pdf,打印出来很丑,完全不能看. mac下:pycharm 编辑器有print的功能,但是会提示: Error: No print service found. 所以需要一个 ...

  8. 分享一下自己写的Python 3的各种PDF文档【花了半年时间那】

    这些文档花了我半年的时间去整理.因为是第一次进行整理,希望帮助后来者少走弯路.毕竟是第一次整理.哪些地方不到位,希望大家和我练习,我们一起把它做好,以下就直接给出下载地址了,都是免积分的下载奥.因此. ...

  9. Python将阿拉伯数字转化为中文大写-乾颐堂

    利用Python将阿拉伯数字转化为中文大写,其实最麻烦的地方就是中间空多个0的问题,这种情况下,采用拆分法则,将一个大数字,先拆分成整数部分和小数部分,再对整数部分按照仟.万.亿.兆分位拆分为四个字符 ...

随机推荐

  1. python 全栈开发,Day32(知识回顾,网络编程基础)

    一.知识回顾 正则模块 正则表达式 元字符 : . 匹配除了回车以外的所有字符 \w 数字字母下划线 \d 数字 \n \s \t 回车 空格 和 tab ^ 必须出现在一个正则表达式的最开始,匹配开 ...

  2. xxx is not in sudoers file 解决(转)

    解决方案:首需要切换到root身份$su -(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,用& ...

  3. .NetCore源码阅读笔记系列之Security (四) Authentication & AddJwtBearer

    接下来我们在来看下AddJwtBearer,这个与AddOpenIdConnect不太一样,后者是远程发起身份认证请求是一种主动发起式的,多用于web等客户端,验证发生在身份认证服务端,而前者是一种被 ...

  4. 微服务的发现与注册--Eureka

    目录 服务提供者.服务消费者.服务发现组件三者之间的关系 Eureka 简介 Eureka Server Eureka Client 编写Eureka Server 将微服务注册到Eureka Ser ...

  5. 【BZOJ3307】雨天的尾巴

    题解: win下的10mb和linux下的好像不是很一样 明天再看看 求lca用的离线求,注意bz数组开2*n 这道题的线段树合并还是很好想的 我们只要把操作差分一下就好了 时间复杂度nlogn的 写 ...

  6. HDU5818 Joint Stacks 左偏树,可并堆

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU5818 题意概括 有两个栈,有3种操作. 第一种是往其中一个栈加入一个数: 第二种是取出其中一个栈的顶 ...

  7. 高德地图web端笔记;发送http请求的工具类

    1.查询所有电子围栏 package com.skjd.util; import java.io.BufferedReader; import java.io.InputStream; import ...

  8. 【Java】 剑指offer(31) 栈的压入、弹出序列

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否 ...

  9. 函数式编程之 Python

    上接 python 函数式编程学习笔记 参考:www.sigai.cn/ 1 函数式编程概述 前提:函数在 Python 中是⼀等对象 工具:built-in ⾼阶函数:lambda 函数:opera ...

  10. 用python批量生成简单的xml文档

    最近生成训练数据时,给一批无效的背景图片生成对应的xml文档,我用python写了一个简单的批量生成xml文档的demo,遇见了意外的小问题,记录一下. 报错问题为:ImportError: No m ...