# 待安装环境pandoc~~操作本质是os.system调用命令行执行该程序 下载https://github.com/jgm/pandoc/releases
# pip install pywin32 pip install docx2pdf pip install pandoc pip install pandoc-xnos
# 调用了word环境
# from docx2pdf import convert https://zhuanlan.zhihu.com/p/147498949
# convert("input.docx", "output.pdf") pip install markdown2pdf3 from markdown2pdf3 import * pip install pypandoc convert_markdown_to_pdf('test.md') #你的markdown文件路径
import os
from docx2pdf import convert
from markdown2pdf3 import *
import shutil
from win32com.client import constants, gencache
# markdown文件转换模块 markdown——>docx
def path(dir_path, func):
"""
:param dir_path: 目标转换文件夹路径
:param func: 功能 数字1:将markdown转换为doc 数字2:将doc转换为pdf 数字3: 将生成的pdf文件,移动到D:/filestorage目录下
:return:
"""
# os.walk输出当前目录下所有文件
# x路径名, y文件夹名, z文件名
for i in range(func):
for x, y, z in os.walk(dir_path):
for filename in z:
# 分割文件名和后缀名
suffix_name = os.path.splitext(filename)[1]
prefix_name = os.path.splitext(filename)[0]
filepath = x + '\\' + filename
outfilepath = x + '\\' + prefix_name
if i == 0:
if(True ==True):
continue;
if suffix_name == '.md':
print('pandoc ' + '"' + filepath + '"' + ' -o ' + x + '\\' + os.path.splitext(filename)[0] + '.docx')
# convert_markdown_to_pdf(filepath)#RuntimeError: Pandoc died with exitcode "47" during conversion: xelatex not found. Please select a different --pdf-engine or install xelatex
os.system('C:\\Users\\qssq5\\AppData\\Local\\Pandoc\\pandoc.exe ' + '"' + filepath + '"' + ' -o ' + '"' + x + '\\' + os.path.splitext(filename)[
0] + '.docx' + '"')
elif i == 1:
if suffix_name == '.docx':
if(outfilepath.find("android-")!=-1):
continue;
print("doc "+filepath+" 2 "+outfilepath+" "+ os.path.splitext(filename)[0] + '.pdf')
# createPdf(filepath, outfilepath)
convert(filepath,outfilepath+".pdf")
os.remove(filepath)
elif i == 2:
if suffix_name == '.pdf':
# 不存在该目录,则利用mkdir进行创建
if not os.path.exists(dir_path+ '\\pdf\\'):
os.mkdir(dir_path+ '\\pdf\\')
shutil.move(filepath,dir_path+ '\\pdf\\'+prefix_name+'.pdf')
# docx文件转换模块 docx——>pdf
def createPdf(wordpath, pdfpath):
"""
:param wordpath: 目标word路径
:param pdfpath: 生成pdf路径
:return:
"""
word = gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Open(wordpath, ReadOnly=1)
doc.ExportAsFixedFormat(pdfpath,
constants.wdExportFormatPDF,
Item=constants.wdExportDocumentWithMarkup,
CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
word.Quit(constants.wdDoNotSaveChanges)
if __name__ == '__main__':
dirname = os.getcwd() #获取当前工作目录路径
path(dirname, 2)
md转pdf批量源码
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 当你有pdf的矢量图需要转成png这样的位图时,你是怎么做的呢,用WPS开个会员把pdf转成png么?那如果有10...
- 背景 之前写过一篇文章 《Django restframework实现批量操作》[http://blog.coli...
- 前言 某天我们运营在编辑后台的时候说每次上传ppt,pdf,word时都要把每个文件先导出一次图片,然后一个一个上...
- 其实CAD图纸格式转换的问题,大家都应该很熟悉了,因为CAD图纸格式是一种比较特的CAD图纸格式,为了方便的进行查...