PHP使用pandoc把markdown文件转为word

文章目录

服务器操作系统是Linux,centos

首先安装pandoc

shell 复制代码
yum install -y pandoc

安装完成后输入如下代码,检查安装是否成功

shell 复制代码
pandoc --version

PHP处理

我把markdown内容存到了数据库里,所以要从数据库读取内容。对内容需要做一些处理。

  • 图片的路径要转为绝对路径,不然pandoc导出的word没有图片。
  • 把处理后的内容生成md文件
  • 调用pandoc把md文件转为word
php 复制代码
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}");
    }
    ```
相关推荐
m0_459252468 分钟前
fastadmin动态渲染统计信息
开发语言·前端·javascript·php
AI成长日志17 分钟前
【实用工具教程】Linux常用命令速查与实战场景:文件操作、进程管理与网络调试高频命令解析
linux·php
傻啦嘿哟26 分钟前
Python 操作 Excel 条件格式指南
开发语言·python·excel
逆境不可逃27 分钟前
LeetCode 热题 100 之 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 4. 寻找两个正序数组的中位数
java·开发语言·数据结构·算法·leetcode·职场和发展
星空下的月光影子41 分钟前
易语言开发从入门到精通:进阶篇·数据处理与分析自动化·高频刚需手工转自动场景全覆盖
开发语言
林夕sama43 分钟前
多线程基础(四)
java·开发语言
Yang-Never1 小时前
ADB ->adb shell perfetto 抓取 trace 指令
android·开发语言·adb·android studio
ccchen8881 小时前
适配帝国CMS 8.0:全新帝国CMS免登录采集发布插件
经验分享·爬虫·php·帝国cms自动采集发布插件·帝国cms8.0·帝国cms自动采集插件·帝国cms采集发布模块
小鸡吃米…1 小时前
Python 网络爬虫 —— 环境设置
开发语言·爬虫·python