多格式转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 @ 2023-10-25 10:35  青核桃啊  阅读(63)  评论(0编辑  收藏  举报