Java轻松转换Markdown文件到Word和PDF文档

Markdown 凭借其简洁易用的特性,成为创建和编辑纯文本文档的常用选择。但某些时候我们需要更加精致的展示效果,例如在专业分享文档或打印成离线使用的纸质版时,就需要将Markdown文件以其他固定的文档格式呈现。通过将 Markdown 转换为 Word 和 PDF 格式,可以得到更多的格式设置,确保跨平台的兼容性,并能够创建出专业的文档。本文将探讨如何使用 Java 将 Markdown 格式转换为 Word 和 PDF 格式

本文采用的方法需要 Spire.Doc for Java 库的支持。

使用 Java 将 Markdown 文件转换为 Word 文档

Markdown 格式转换为 Word 或 PDF 文档格式,可以通过调用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加载 Markdown 文件,以及使用 Document.saveToFile(String: fileName, FileFormat: fileFormat) 方法保存为 Word 或 PDF 文档来简单完成。需要注意的是,由于 Markdown 文件中的图片是以链接形式存储的,如果希望在转换后保留图片,还需进行额外处理。
Markdown 文件转换为 Word 文档的具体步骤如下:

  1. 导入必要的模块。
  2. 创建 Document 类的实例。
  3. 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加载 Markdown 文件。
  4. 通过 Document.saveToFile(String: fileName, FileFormat.Docx) 方法将 Markdown 文件保存为 Word 文档。
  5. 释放资源。

代码示例:

import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MarkdownToWord {
    public static void main(String[] args) {
        // 创建一个 Document 实例
        Document doc = new Document();

        // 加载 Markdown 文件
        doc.loadFromFile("示例.md", FileFormat.Markdown);

        // 将 Markdown 文件保存为 Word 文档
        doc.saveToFile("output/Markdown转Word.docx", FileFormat.Docx);
        doc.dispose();
    }
}

原Markdown文件:
Java 将 Markdown 文件转换为 Word 文档

转换结果:
Java 将 Markdown 文件转换为 Word 文档

使用 Java 将 Markdown 文件转换为 PDF 文件

只需在 Document.saveToFile() 方法的格式参数中使用 FileFormat.PDF 枚举,即可直接将 Markdown 文件转换为 PDF 文档。
Markdown 文件转换为 PDF 文档的步骤如下:

  1. 导入必要的模块。
  2. 创建 Document 类的实例。
  3. 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加载 Markdown 文件。
  4. 利用 Document.saveToFile(String: fileName, FileFormat.PDF) 方法将 Markdown 文件保存为 PDF 文档。
  5. 释放资源。

代码示例:

import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MarkdownToPDF {
    public static void main(String[] args) {
        // 创建一个 Document 实例
        Document doc = new Document();

        // 加载 Markdown 文件
        doc.loadFromFile("示例.md");

        // 将 Markdown 文件保存为 PDF 文件
        doc.saveToFile("output/Markdown转PDF.pdf", FileFormat.PDF);
        doc.dispose();
    }
}

转换结果:
Java 将 Markdown 文件转换为 PDF 文件

自定义生成文档的页面设置

除了默认样式转换外,我们还可以在转换前利用 PageSetup 类下的方法进行页面设置,从而控制生成文档的页面边距、页面大小等属性。
自定义生成文档页面设置的步骤如下:

  1. 导入必要的模块。
  2. 创建 Document 类的实例。
  3. 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加载 Markdown 文件。
  4. 通过 Document.getSections().get(0) 方法获取第一章节。
  5. 使用 PageSetup 类下的方法设定页面大小、方向及边距。
  6. 通过 Document.saveToFile(String: fileName, FileFormat.PDF) 方法将 Markdown 文件保存为 PDF 文档。
  7. 释放资源。

代码示例:

import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.PageSetup;
import com.spire.doc.Section;
import com.spire.doc.documents.MarginsF;
import com.spire.doc.documents.PageOrientation;
import com.spire.doc.documents.PageSize;

public class PageSettingMarkdown {
    public static void main(String[] args) {
        // 创建一个 Document 实例
        Document doc = new Document();

        // 加载 Markdown 文件
        doc.loadFromFile("示例.md");

        // 获取第一个节
        Section section = doc.getSections().get(0);

        // 设置页面尺寸、方向和边距
        PageSetup pageSetup = section.getPageSetup();
        pageSetup.setPageSize(PageSize.Letter);
        pageSetup.setOrientation(PageOrientation.Landscape);
        pageSetup.setMargins(new MarginsF(100, 100, 100, 100));

        // 将 Markdown 文件保存为 PDF 文件
        doc.saveToFile("output/Markdown转PDF.pdf", FileFormat.PDF);
        doc.dispose();
    }
}

转换结果:
自定义生成文档的页面设置

本文通过分步指南及代码示例展示了如何将 Markdown 文件转换为 Word 文档和 PDF 文件。

欲了解更多文档处理与转换技巧,请前往 Spire.Doc for Java 教程

申请免费License

Java中将Word文档转换Markdown格式,通常需要借助第三方库,如Apache POI用于读取Word文件内容,然后利用特定的库如pandoc-java、docx4j等将Word的内容转换Markdown格式。以下是一个简单的步骤概述: 1. **添加依赖**: 首先,你需要在项目中添加相关的Java库依赖,比如`org.apache.poi poi`用于处理Word文档,`com.github.rjeschke.txtmark`用于Markdown转换。 ```java // Maven <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version> </dependency> <dependency> <groupId>com.github.RuedigerScheid</groupId> <artifactId>txtmark</artifactId> <version>4.4.1</version> </dependency> ``` 2. **读取Word内容**: 使用Apache POI的`POIXMLDocument`打开Word文档,并从中提取文本数据。 ```java try (POIXMLDocument document = POIXMLFactory.create(documentInputStream)) { // 获取word的主要内容区域,如body元素 Body body = document.getDocument().getBody(); List<Paragraph> paragraphs = body.getParagraphs(); } ``` 3. **转换Markdown**: 将Word的段落结构遍历并用`txtmark`库中的`TextBuilder`类逐行转换Markdown格式。 ```java StringBuilder markdownBuilder = new StringBuilder(); for (Paragraph paragraph : paragraphs) { String text = paragraph.getText(0).toString(); markdownBuilder.append(text).append("\n"); } String markdownContent = txtmark.TextBuilder.builder() .append(markdownBuilder.toString()) .render(); ``` 4. **保存Markdown文件**: 最后将转换后的Markdown内容保存到新的文件中。 ```java try (OutputStream outputStream = new FileOutputStream("output.md")) { Files.write(outputStream, markdownContent.getBytes(StandardCharsets.UTF_8)); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值