批量转换office 的docx文件为pdf文件
虽然wps office等软件都集成了一建转换的功能,但是有时我们需要的不仅仅是一个文档的转换,
而是一批文档的转换,这样就可以用这个代码了.代码是在ubuntu下运行的.废话不多说,直接上代码,其中部分代码借鉴了
https://blog.csdn.net/qq_44920726/article/details/104652145
特别感谢
需要给定参数原文件的目录名称和保存pdf文件的目录名称
import re
import os
import subprocess
from subprocess import Popen, PIPE
def word_to_pdf(outfile, infile, timeout=20):
args = ['libreoffice', '--headless', '--convert-to', 'pdf', '--outdir', outfile, infile]
process = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=timeout)
re.search('-> (.*?) using filter', process.stdout.decode())
"""将word 转换为pdf
函数说明:将路径为infile的word文件转换为pdf,保存进路径为outfile的pdf文件.
参数: outfile(str):保存文件pdf的路径.
参数: infile(str):word文件的路径.
参数: timeout:转换文件时的时间延迟.
"""
def filedocx_to_filepdf(oldfilepath,newfilepath):
infiles = [name for name in os.listdir(oldfilepath)]
inFiles = []
for string in infiles:
if(bool(re.search('docx$', string))):
inFiles.append(string)
for infile in inFiles:
word_to_pdf(newfilepath,oldfilepath+infile)
"""
批量转换docx文件转换成pdf文件
需要给定参数有源文件的目录名称和保存pdf文件的目录名称
过滤掉不是docx结尾的文档
"""
filepath = "/home/maiji/Desktop/均衡配置/"
newfilepath = "/home/maiji/Desktop/均衡配置1/"
filedocx_to_filepdf(filepath,newfilepath)