PDF导出为图片并生成WORD

大家好,我消失了太久,不知道大家还记不记得我.前段时间有人提了个很奇怪的要求:他们要投标,投标方需要word形式的标书,标书内又要有公司内部几百号人的从业证书,现在标书写好了,每个人自己的从业证书各自扫描了PDF文件。现在需要把这些PDF文件合并,并且插入到word中。

1、pdf合并

大家直接参考之前的文档就可以了

2、导出图片并放入word

首先需要安装三个包

PyMuPDF
python_docx
pywin32

然后就是代码了

import fitz,osfrom docx import Documentfrom docx.shared import Inchesdef pyMuPDF_fitz(pdfPath):    pdfDoc = fitz.open(pdfPath)    name = str(pdfPath.split('/')[-1])[:-4]    document = Document()    for pg in range(pdfDoc.pageCount):        page = pdfDoc[pg]        rotate = int(0)        zoom_x = 1.33333333        zoom_y = 1.33333333        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)        pix = page.getPixmap(matrix=mat, alpha=False)        pix.writePNG('0.png')#将图片写入        document.add_picture('0.png', width=Inches(6))    document.save('%s.docx'% name)

pyMuPDF_fitz('pdf地址')

为了使用更方便我优化了一下代码:主要就是做了个界面,实现用户可以直接选择pdf文件,在同目录下会直接生成word文档,然后打包成了一个exe文件,让用户可以不装python实现操作。

#-*- coding:utf-8 -*-
__author__ = 'zhangqi'

import fitz,os
from docx import Document
from tkinter import *
from tkinter import filedialog
import tkinter
from docx.shared import Inches
def openfile():
  global path
  path = filedialog.askopenfilename( filetypes=[('所有支持的类型', '*.pdf'), ('All Files', '*')])
  text2.set(path)
def pyMuPDF_fitz(pdfPath):
  pdfDoc = fitz.open(pdfPath)
  name = str(pdfPath.split('/')[-1])[:-4]
  document = Document()
  for pg in range(pdfDoc.pageCount):
      page = pdfDoc[pg]
      rotate = int(0)
      zoom_x = 1.33333333
      zoom_y = 1.33333333
      mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
      pix = page.getPixmap(matrix=mat, alpha=False)
      pix.writePNG('0.png')#将图片写入
      document.add_picture('0.png', width=Inches(6))
  document.save('%s.docx'% name)
def ok():
  p=str(path)
  yp = str('/'.join(p.split('/')[:-1]))
  os.chdir(yp)
  pyMuPDF_fitz(path)
  z = root.destroy()
root = tkinter.Tk()
root.title('内容选择')
root.geometry('300x100+500+300')
text2 = StringVar()
t2 = Entry(root, textvariable = text2)
text2.set(' ')
btn1 = tkinter.Button(root,text='选择需转换的PDF文件', command=openfile)
btn2 = tkinter.Button(root,text='确定', command=ok)
btn1.pack()
t2.pack()
btn2.pack()
root.mainloop()

使用效果:

今天内容就到这里了,大家随缘再见!~

(0)

相关推荐