PHP使用pandoc把markdown文件转为word
文章目录
- 首先安装pandoc
- PHP处理
服务器操作系统是Linux,centos
首先安装pandoc
yum install -y pandoc
安装完成后输入如下代码,检查安装是否成功
pandoc --version
PHP处理
我把markdown内容存到了数据库里,所以要从数据库读取内容。对内容需要做一些处理。
- 图片的路径要转为绝对路径,不然pandoc导出的word没有图片。
- 把处理后的内容生成md文件
- 调用pandoc把md文件转为word
public function download(){$id=input('id/d',0);$info=Db::name('article')->find($id);//测试使用pandoc转word// 使用正则替换:捕获完整路径,将图片路径改为绝对路径$newContent = preg_replace_callback('/\((\/uploads\/\d{8}\/([a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9]+)?(?:\?.*)?))\)/',function ($matches) {// $matches[2] 是文件名(不含路径)//ROOT_PATH是根目录路径常量return '(' . ROOT_PATH.$matches[1] . ')';},$info['content']);$f='/ziptemp/'.$info['title'].'.md';$mdFile=ROOT_PATH.$f;//生成md文件file_put_contents($mdFile,$newContent);$wf='/ziptemp/'.$info['title'].'.docx';$outputFile=ROOT_PATH.$wf;//转成的word路径exec("pandoc {$mdFile} -o {$outputFile}");}```