当前位置: 首页 > article >正文

python将word文件转换成pdf文件

要将word文件转换成pdf文件,可以使用Python的pywin32库结合Microsoft Office软件来实现。
方法一:

import win32com.client as win32

def word_to_pdf(input_file, output_file):
    word = win32.gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(input_file)
    doc.SaveAs(output_file, FileFormat=17)
    doc.Close()
    word.Quit()

# 示例使用
input_file = 'input.docx'
output_file = 'output.pdf'
word_to_pdf(input_file, output_file)

在代码中,首先导入了win32com.client模块,并使用EnsureDispatch方法来创建一个Word应用程序的对象。然后使用Documents.Open方法打开输入的Word文件。

通过调用SaveAs方法,并将FileFormat参数设置为17,可以将Word文件保存为PDF格式。最后,使用Close方法关闭打开的文档,并使用Quit方法关闭Word应用程序。

请注意,此代码需要安装pywin32库和Microsoft Office软件才能正常运行。

方法二:
此方法适用于linux和Windows环境,方法一只适用于Windows环境

# word转Pdf
def word_change_pdf(word_file_path):
    """
    将word文件转换成pdf文件
    :param word_file_path: word文件地址
    :return: 返回转成的pdf地址信息
    """

    suffix = os.path.basename(word_file_path).split('.')[1]
    # 另存为pdf文件
    pdf_path = word_file_path.replace(suffix, "pdf")
    out_dir = pdf_path.rsplit('/', 1)[0] + '/'

    if 'window' in os_system:
        # LibreOffice本地位置D:/Download/LibreOffice/program/soffice.exe
        command = ['D:/Download/LibreOffice/program/soffice.exe', '--convert-to', 'pdf', '--outdir', out_dir,
                   word_file_path]
    else:
        # LibreOffice在虚拟机的位置:/usr/bin/libreoffice7.6
        command = ['/opt/libreoffice7.6/program/soffice.bin', '--convert-to', 'pdf', '--outdir', out_dir,
                   word_file_path]
    subprocess.Popen(command).communicate()

    return pdf_path

http://www.kler.cn/a/231637.html

相关文章:

  • 内网安全隧道搭建-ngrok-frp-nps-sapp
  • 解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题
  • 蜀道山CTF<最高的山最长的河>出题记录
  • resnet50,clip,Faiss+Flask简易图文搜索服务
  • 智能网页内容截图工具:AI助力内容提取与可视化
  • 华为USG5500防火墙配置NAT
  • 队列---数据结构
  • 学习与非学习
  • Docker-Learn(三)创建镜像Docker(换源)
  • nohup基本使用
  • Ubuntu权限相关命令
  • 【Linux】Ubuntu 22.04 升级 nodejs 到 v18
  • Java学习网络编程
  • QT QCombox 样式表 比起作用
  • Verilog刷题笔记28
  • canvas实现涂鸦画板功能
  • Apollo分布式配置中心
  • 使用QT编写一个简单QQ登录界面
  • 操作系统-【预备学习-1】(Linux 文件目录)
  • linux系统非关系型数据库redis的配置文件
  • TCP 粘包/拆包
  • 1-1 动手学深度学习v2-线性回归-笔记
  • 数模.matlab画图
  • Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
  • 网络5.0内生安全可信体系关键技术(上)
  • Excel——分类汇总