多格式转pdf——md 转 pdf

复制代码
    public static String mdToPdfConverter(String mdFilePath, String pdfFilePath, String fontPath) throws Exception {
        // 创建Document对象
        Document document = new Document();
        // 创建PdfWriter对象将文档写入文件
        PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
        // 打开文档
        document.open();
        // 设置字体,用于支持中文显示
        fontPath = fontPath + ",0";
        System.out.println(fontPath);
        BaseFont font = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        Font chineseFont = new Font(font, 12);
        // 创建BufferedReader对象来读取文件
        BufferedReader reader = new BufferedReader(new FileReader(pdfFilePath));
        // 读取Markdown文件所有行内容
        List<String> markdowns = Files.readAllLines(Paths.get(mdFilePath));
        // 遍历行内容并写入到pdf
        for (String markdown : markdowns) {
            // 解析Markdown为抽象语法树
            Parser parser = Parser.builder().build();
            Node mdDocument = parser.parse(markdown);
            // 将Markdown抽象语法树渲染为HTML
            TextContentRenderer renderer = TextContentRenderer.builder().build();
            String line = renderer.render(mdDocument);
            // 添加文本内容到文档
            Paragraph paragraph = new Paragraph(line, chineseFont);
            document.add(paragraph);
            // 打印行内容
//            System.out.println(line);
        }
        reader.close();
        document.close();

        return pdfFilePath;
    }
复制代码

 多格式转换相关:https://www.cnblogs.com/Rover20230226/p/17786602.html

posted @   青核桃啊  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示