脚本如何Word转PDF文件

wen 实用脚本 28

本文目录导读:

脚本如何Word转PDF文件

  1. 方法一:使用Python脚本(推荐,跨平台)
  2. 方法二:使用LibreOffice(免费开源,适合Linux/服务器)
  3. 方法三:使用Microsoft Office COM对象(仅Windows)
  4. 方法四:使用在线API(适合无本地Office环境)
  5. 选择建议

将Word文档转换为PDF文件,可以通过以下几种方式实现,具体取决于你的使用场景:

使用Python脚本(推荐,跨平台)

推荐使用 python-docxdocx2pdf 库。

安装依赖:

pip install python-docx docx2pdf

脚本示例:

import os
from docx2pdf import convert
def word_to_pdf(input_path, output_path=None):
    """
    将Word文档转换为PDF
    :param input_path: Word文件路径
    :param output_path: PDF输出路径(可选,默认同目录同名PDF)
    """
    # 如果没有指定输出路径,生成与输入同名的PDF文件
    if output_path is None:
        output_path = os.path.splitext(input_path)[0] + '.pdf'
    try:
        # 转换单个文件
        convert(input_path, output_path)
        print(f"转换成功: {output_path}")
    except Exception as e:
        print(f"转换失败: {e}")
# 示例:转换单个文件
word_to_pdf("文档.docx")
# 示例:批量转换文件夹中的所有docx文件
def batch_convert(folder_path):
    for file in os.listdir(folder_path):
        if file.endswith('.docx'):
            word_to_pdf(os.path.join(folder_path, file))
batch_convert("./word_files")

注意: docx2pdf 依赖于系统安装的Microsoft Word(Windows)或LibreOffice(macOS/Linux)。


使用LibreOffice(免费开源,适合Linux/服务器)

安装LibreOffice:

  • Ubuntu/Debian: sudo apt install libreoffice
  • macOS: brew install --cask libreoffice
  • Windows: 下载安装包

Python脚本:

import subprocess
import os
def convert_with_libreoffice(input_path, output_dir=None):
    """
    使用LibreOffice命令行转换Word为PDF
    """
    if output_dir is None:
        output_dir = os.path.dirname(input_path)
    # LibreOffice命令行参数
    cmd = [
        'libreoffice',
        '--headless',           # 无界面模式
        '--convert-to', 'pdf',  # 转换格式
        '--outdir', output_dir, # 输出目录
        input_path
    ]
    result = subprocess.run(cmd, capture_output=True, text=True)
    if result.returncode == 0:
        print(f"转换成功,输出到: {output_dir}")
    else:
        print(f"转换失败: {result.stderr}")
# 使用示例
convert_with_libreoffice("文档.docx")

使用Microsoft Office COM对象(仅Windows)

需要安装Microsoft Office:

import win32com.client
import os
def word_to_pdf_com(input_path, output_path=None):
    """
    使用Word应用程序(需要安装Office)转换
    """
    if output_path is None:
        output_path = os.path.splitext(input_path)[0] + '.pdf'
    word = win32com.client.Dispatch("Word.Application")
    word.Visible = False  # 隐藏Word界面
    try:
        doc = word.Documents.Open(os.path.abspath(input_path))
        doc.SaveAs(os.path.abspath(output_path), FileFormat=17)  # 17=PDF格式
        doc.Close()
        print(f"转换成功: {output_path}")
    except Exception as e:
        print(f"转换失败: {e}")
    finally:
        word.Quit()
# 使用示例
word_to_pdf_com("文档.docx")

安装依赖: pip install pywin32


使用在线API(适合无本地Office环境)

使用免费的在线转换API(如 pdfcrowdilovepdf),但通常有文件大小限制。

示例使用 pdfkitwkhtmltopdf

# 注意:这适用于HTML转PDF,Word需先转为HTML
import pdfkit
# 先使用python-docx提取内容生成HTML,再转PDF

选择建议

场景 推荐方法 优点 缺点
本地Windows+Office 方法一(docx2pdf) 简单高效 依赖Word安装
Linux/服务器 方法二(LibreOffice) 免费开源,批量处理 转换效果可能稍差
简单的Python脚本 方法一(docx2pdf) 代码简洁 跨平台需配置
嵌入式/无GUI环境 方法二(LibreOffice) 无图形界面依赖 需要安装LibreOffice

最简单的方案(如果已安装Word):

# 直接用docx2pdf命令行工具
pip install docx2pdf
docx2pdf 文档.docx

脚本均可批量处理或集成到自动化流程中。

抱歉,评论功能暂时关闭!