关于使用脚本将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 *
posted @ 2021-12-14 18:24  love_water  阅读(465)  评论(0编辑  收藏  举报