#! /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 再转图片--用在轻社群发文章的更多相关文章

  1. openOffice word转pdf,pdf转图片优化版

    之前写了一个版本的,不过代码繁琐而且不好用,效率有些问题.尤其pdf转图片速度太慢.下面是优化版本的代码. spriing_boot 版本信息:2.0.1.RELEASE 1.配置信息: packag ...

  2. Word转pdf,再转图片插入PDF

    WORD转PDF所需jar包: https://yangtaotao.lanzous.com/ice1jlc PDF转图片所需jar包: https://yangtaotao.lanzous.com/ ...

  3. C#实现 word、pdf、ppt 转为图片

    office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...

  4. word、pdf、ppt 转为图片

    office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...

  5. 解决word转pdf后图片失真

    碰到问题: 将word转pdf后图片出现失真 问题分析: 上述问题必定跟图片类型和所用软件有关,现将不同图片在不同软件下的失真情况汇总,见表1 问题解决:迫不得已,不要使用截图:若必需要用,则word ...

  6. word转pdf图片问题

    经过整理总结出两类问题:1,pdf文件下载文档中某些图片显示红叉.     问题现象:pdf是通过word转换成,发现源文件doc和docx文档均出现上述问题:只是某些图片显示红叉.通过这两点确定和文 ...

  7. CAD转PDF再由pdf转jpg图片

    免费的PDF转JPG图片 https://www.gaitubao.com/pdf-to-jpg/

  8. 采用jacob实现word转pdf

    网络上已经有很多这方面的内容,在用之前也是参考了好多别人的文章,下面记录下我自己的整合过程.整个过程都比较简单: 开发环境:win8 64位系统,在2008下面部署也是一样的. 文档要求jdk的版本要 ...

  9. C#操作word模板插入文字、图片及表格详细步骤

    c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...

随机推荐

  1. python 文件读写模式区别,以及如何边写入边保存flush()

    如表: 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 否, ...

  2. java基础 JDBC & Statement & PreparedStatement

    参考文章: http://blog.csdn.net/wang379275614/article/details/23393335 概念 JDBC-数据库连接,是由一些类和接口构成的API,是J2SE ...

  3. 2018-2019-2 网络对抗技术 20165230 Exp8 Web基础

    目录 实验目的 实验内容 实验步骤 (一)Web前端HTML Apache HTML编程 (二) Web前端javascipt 基础知识理解 JavaScript编程 (三)Web后端:MySQL基础 ...

  4. 【Gamma】“北航社团帮”测试报告——小程序v3.0

    目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v3.0 新功能 各页面均可正常打开,跳转,回退 授权登录与权限检查 页面数据 ...

  5. [Gamma]Scrum Meeting#6

    github 本次会议项目由PM召开,时间为6月1日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐 ...

  6. 第2课 auto类型推导(1)

    第2课 auto类型推导(1) 一.auto类型推导 (一)与模板类型推导映射关系 1.auto类型推导与模板类型推导可以建立一一映射关系,它们之间存在双向的算法变换.auto扮演模板中T的角色,而变 ...

  7. node学习基础

    node特点 js运行时,非阻塞I/O,事件循环 模块导入导出 模块化 导入 require('./xxx') module.exports=xxx index.js module.exports = ...

  8. js2048小游戏

    js2048小游戏,方格是怎么合并和移动的 index.html <html> <head> <meta charset="utf-8"> &l ...

  9. Springboot Actuator之十:actuator中的audit包

    前言这篇文章我们来分析一下org.springframework.boot.actuate.security,org.springframework.boot.actuate.audit中的代码,这2 ...

  10. .net Core MongoDB用法演示

    C#驱动MongoDB的本质是将C#的操作代码转换为mongo shell,驱动的API也比较简单明了,方法名和js shell的方法名基本都保持一致,熟悉mongo shell后学习MongoDB的 ...