本文目录导读:

- 方法一:使用Python脚本(推荐,跨平台)
- 方法二:使用LibreOffice(免费开源,适合Linux/服务器)
- 方法三:使用Microsoft Office COM对象(仅Windows)
- 方法四:使用在线API(适合无本地Office环境)
- 选择建议
将Word文档转换为PDF文件,可以通过以下几种方式实现,具体取决于你的使用场景:
使用Python脚本(推荐,跨平台)
推荐使用 python-docx 和 docx2pdf 库。
安装依赖:
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(如 pdfcrowd 或 ilovepdf),但通常有文件大小限制。
示例使用 pdfkit 和 wkhtmltopdf:
# 注意:这适用于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
脚本均可批量处理或集成到自动化流程中。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播