关于使用脚本将docx转成pdf在转成图片
关于使用脚本将docx转成pdf在转成图片
这里有两种方法(docx->pdf)
方法1(python脚本)
# 需要导入的
import sys
from win32com.client import Dispatch
import fitz # pip3 install pymupdf
import os
import requests
import base64
脚本
# word_to_pdf
def word_to_pdf(word_file, pdf_file):
"""
将word文件转换成pdf文件
:param pdf_file:
:param word_file: word文件
:return:
"""
# 获取word格式处理对象
word = Dispatch('Word.Application')
# 以Doc对象打开文件
doc_ = word.Documents.Open(word_file)
# 另存为pdf文件
doc_.SaveAs(pdf_file, FileFormat=17)
# 关闭doc对象
doc_.Close()
# 退出word对象
word.Quit()
方法2(vbs脚本)
待转换的docx放在一个文件夹中新建一个script.vbs文件,文件放在待转换的文件夹中将以下代码放入scripy.vbs脚本中双击vbs脚本即可开始转换
On Error Resume Next
Const wdExportFormatPDF = 17
Set oWord = WScript.CreateObject("Word.Application")
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set fds=fso.GetFolder(".")
Set ffs=fds.Files
wscript.echo "Word文件正在转换中,请勿关闭当前窗口..."
For Each ff In ffs
If (LCase(Right(ff.Name,4))=".doc" Or LCase(Right(ff.Name,4))="docx" ) And Left(ff.Name,1)<>"~" Then
Set oDoc=oWord.Documents.Open(ff.Path)
odoc.ExportAsFixedFormat Left(ff.Path,InStrRev(ff.Path,"."))&"pdf",wdExportFormatPDF
If Err.Number Then
MsgBox Err.Description
End If
End If
Next
odoc.Close
oword.Quit
Set oDoc=Nothing
Set oWord =Nothing
wscript.echo "Word文件已全部转换为PDF格式!"
MsgBox "Word文件已全部转换为PDF格式!"
pdf->png
# pdf_to_png
def pdf_to_png(_pdf, _save_dir):
_doc = fitz.open(_pdf)
pdf_name = os.path.splitext(_pdf)[0]
for pg in range(_doc.pageCount):
page = _doc[pg]
rotate = int(0)
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
zoom_x = 2.0
zoom_y = 2.0
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
# save_dir = pdf.replace('.pdf', '')
if not os.path.exists(_save_dir):
os.mkdir(_save_dir)
pm.writePNG(os.path.join(_save_dir, '%s.png' % pg))
已发布pypi,有问题欢迎指正
# 安装
pip install ds-my-tools
# 更新
pip install ds-my-tools --upgrade
# 卸载
pip uninstall ds-my-tools
# 使用
from my_tools import *
本文来自博客园,作者:love_water,转载请注明原文链接:https://www.cnblogs.com/ldsice/articles/15689345.html