word 转pdf 再转图片--用在轻社群发文章
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import fitz
import glob
import os
from win32com.client import Dispatch, constants, gencache
import sys,shutil
import datetime
print sys.getdefaultencoding()
#################word
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 Exception ,e:
print str(e)
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)
#####################
inputdoc = sys.argv[1]
store_tmp = unicode(os.path.splitext(inputdoc)[0],'GBK')
print inputdoc
outputpdf = os.path.splitext(inputdoc)[0]+'.pdf'
if (not os.path.isabs(inputdoc)):
inputdoc = os.path.abspath(inputdoc)
if (not os.path.isabs(outputpdf)):
outputpdf = os.path.abspath(outputpdf)
try:
GenerateSupport()
rc = doc2pdf(inputdoc, outputpdf)
except Exception,e:
print str(e)
def rightinput(desc):
flag=True
while(flag):
instr = raw_input(desc)
try:
intnum = eval(instr)
if type(intnum)==int:
flag = False
except:
print('ÇëÊäÈëÕýÕûÊý£¡')
pass
return intnum
#pdffile = glob.glob("*.pdf")[0]
pdffile = outputpdf
pdffile = unicode(pdffile , "GBK")
print pdffile
doc = fitz.open(pdffile)
#flag = rightinput("ÊäÈ룺1£ºÈ«²¿Ò³Ã棻2£ºÑ¡ÔñÒ³Ãæ\t")
flag = 1
if flag == 1:
strat = 0
totaling = doc.pageCount
# else:
# strat = rightinput('ÊäÈëÆðÊ¼Ò³Ãæ£º') - 1
# totaling = rightinput('ÊäÈë½áÊøÒ³Ãæ£º')
pdf2png = os.path.join(os.path.dirname(__file__),'pdf2png')
pdf2png_old = os.path.join(pdf2png,'old')
if not os.path.isdir(pdf2png):
os.mkdir(pdf2png)
if not os.path.isdir(pdf2png_old):
os.mkdir(pdf2png_old)
n_t = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
for f in os.listdir(pdf2png):
#print f.endswith('png')
if f.endswith('png'):
try:
src = os.path.join(pdf2png,f)
dst = os.path.join(pdf2png_old,f)
shutil.move(src,dst)
except Exception,e:
pass
for pg in range(strat, totaling):
page = doc[pg]
zoom = int(100)
rotate = int(0)
trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
pm.writePNG(pdf2png+'/%s_%s_%s.png' % (store_tmp,n_t,str(pg+1)))


word 转pdf 再转图片--用在轻社群发文章的更多相关文章
- openOffice word转pdf,pdf转图片优化版
之前写了一个版本的,不过代码繁琐而且不好用,效率有些问题.尤其pdf转图片速度太慢.下面是优化版本的代码. spriing_boot 版本信息:2.0.1.RELEASE 1.配置信息: packag ...
- Word转pdf,再转图片插入PDF
WORD转PDF所需jar包: https://yangtaotao.lanzous.com/ice1jlc PDF转图片所需jar包: https://yangtaotao.lanzous.com/ ...
- C#实现 word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- 解决word转pdf后图片失真
碰到问题: 将word转pdf后图片出现失真 问题分析: 上述问题必定跟图片类型和所用软件有关,现将不同图片在不同软件下的失真情况汇总,见表1 问题解决:迫不得已,不要使用截图:若必需要用,则word ...
- word转pdf图片问题
经过整理总结出两类问题:1,pdf文件下载文档中某些图片显示红叉. 问题现象:pdf是通过word转换成,发现源文件doc和docx文档均出现上述问题:只是某些图片显示红叉.通过这两点确定和文 ...
- CAD转PDF再由pdf转jpg图片
免费的PDF转JPG图片 https://www.gaitubao.com/pdf-to-jpg/
- 采用jacob实现word转pdf
网络上已经有很多这方面的内容,在用之前也是参考了好多别人的文章,下面记录下我自己的整合过程.整个过程都比较简单: 开发环境:win8 64位系统,在2008下面部署也是一样的. 文档要求jdk的版本要 ...
- C#操作word模板插入文字、图片及表格详细步骤
c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...
随机推荐
- 用luks方式对磁盘进行加密以及加密磁盘的自动挂载
1.关于luks加密 LUKS(Linux Unified Key Setup)为Linux硬盘分区加密提供了一种标准,它不仅能通用于不同的 Linux发行版本,还支持多用户/口令.因为它的加密密钥独 ...
- 编译udf小软件(附视频教程)
小软件下载地址(不仅支持Visual Studio并且打包gcc,解压即可编译): https://pan.baidu.com/s/1XPfjfY8DC2KKS8gj1KhutQ 提取码: 6kju ...
- Spring Security教程之退出登录logout(十)
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain.当我们指定 ...
- 【Gamma】“北航社团帮”展示博客
目录 团队介绍 项目愿景 整个项目的预期典型用户 功能展示 原预期用户数量 项目使用情况数据分析 用户量变化 学生认证人数 社长认证人数 入社申请数 活动发布 新闻发布 网页端使用情况 小程序打开次数 ...
- INSERT,UPDATE,DELETE时不写日志
我们在维护数据库的过程中,可能会遇到海量数据的存储和维护,但在有的情况下,需要先试验,然后再对实际的数据进行操作,那么在试验这个过程中,我们是不需要写日志的,因为当你对海量数据操作时,产生的日志可能会 ...
- 【Activiti学习之五】BPMN事件
环境 JDK 1.8 MySQL 5.6 Tomcat 7 Eclipse-Luna activiti 6.0 一.事件定义1.定时器事件(1)timeDate:指定时间触发<timerEven ...
- 手机上的unity路径
转载自:https://www.xuanyusong.com/archives/2656 Application.dataPath路径在PC上无论是Editor还是运行时毫无压力非常万能,但是在手机上 ...
- [转帖]vagrant 添加带版本号的 box
vagrant 添加带版本号的 box https://www.jianshu.com/p/12cf1ecb224b 第三种好用 lnmpcomposerphp 阅读约 8 分钟 前言 众所周知,v ...
- Springboot Actuator之七:actuator 中原生endpoint源码解析1
看actuator项目的包结构,如下: 本文中的介绍Endpoints. Endpoints(端点)介绍 Endpoints 是 Actuator 的核心部分,它用来监视应用程序及交互,spring- ...
- Akka-CQRS(8)- CQRS Reader Actor 应用实例
前面我们已经讨论了CQRS-Reader-Actor的基本工作原理,现在是时候在之前那个POS例子里进行实际的应用示范了. 假如我们有个业务系统也是在cassandra上的,那么reader就需要把从 ...