Java 将Markdown文件转换为Word和PDF文档

news/2024/7/5 23:14:14/文章来源:https://www.cnblogs.com/Yesi/p/18278300

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

  • 使用 Java 将 Markdown 文件转换为 Word 文档
  • 使用 Java 将 Markdown 文件转换为 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 文件转换为 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();}
}

转换结果:

 

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

除了默认样式转换外,我们还可以在转换前利用 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/735840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s-09-Deployment

Deployment微服务化:将一个大规模系统拆分成各个独立运行的组件更新 pod:直接删除所有现有的 pod, 然后创建新的 pod。 先创建新的 pod, 并等待它们成功运行之后, 再删除旧的 pod。 按顺序创建新的 pod, 然后逐渐删除旧的 pod。第 1 种会导致应用程序在一定的时间内不可用。…

IOT2050基本使用和指令集

安装系统镜像 -- debianIOT镜像地址下载及镜像版本说明Win32 disk Imager下载,用于SD卡安装镜像文件使用win32磁盘映像工具镜像操作如下:如果需要把SD卡中的镜像写入到eMMC卡:将烧录好的SD卡插入设备,修改SD卡启动顺序为默认启动设备。 如果已经存在emmc系统,则先格式化em…

K8S学习教程(一):使用PetaExpress云服务器安装Minikube 集群

什么是MinikubeMinikube是一款工具,主要用于在本地运行 Kubernetes 集群。Kubernetes 开源的平台,用于自动化容器化应用的部署、扩展和管理,而Minikube 使得开发人员能够在本地机器上轻松创建一个单节点的 Kubernetes 集群,从而方便开发、测试和学习 Kubernetes。我们看下如…

蓝牙芯片认证

前言: BLE产品工作在2.4G频段。产品具有蓝牙功能并且在产品外观上标明蓝牙标志,则必须通过认证。 各个国家的认证标准不同,但是大同小异。例如FCC/MIC/CE/BQB等。具体需要过某个认证可以查看出口国家。 认证可以分为传导和空气耦合。传导是测试芯片发射信号的波形;耦合是测…

Linux下二进制可执行文件分析 (nm,readelf,objdump 命令使用)

最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可…

hypernetwork在SD中是怎么工作的

大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢?大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢? 简单点说,hypernetwork模型是用于修改样式的小型神经网络。 什么是…

使用 ROS2的多机器人探索

原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA This video shows a demonstration of the SOS project, dedicated to forest fire detection using a fleet of robots. Several important issues are addressed. 这段视频展示了SOS项目的演示,该项目致力于使用机…

企业生产环境Nacos集群部署示例

Nacos运行环境需要jdk环境,集群各节点服务器需安装jdk1.8: jdk-8u341-linux-x64.tar 第一步:上次安装包 第二步:解压 sudo tar -zxvf jdk-8u341-linux-x64.tar.gz 第三步: 配置环境变量sudo vim /etc/profile 第四步:添加以下内容 export JAVA_HOME=/usr/local/jdk1.8.0…

Identity-aware Graph Neural Networks

目录概ID-GNNYou J., Gomoes-Selman J., Ying R. and Leskovec J. Identity-aware graph neural networks. AAAI, 2021.概 提出了一种能够超越 1-WL-Test 的 GNN. ID-GNNID-GNN 的 motivation 主要如下:主要到, 传统的 MPNN, 即第 \(k\) 层: \[\mathbf{m}_u^{(k)} = \text{MSG}…

AMM论文阅读笔记

AMM: Attentive Multi-field Matching for News Recommendation论文阅读笔记 Abstract 现存的问题: ​ 个性化新闻推荐是帮助用户找到感兴趣新闻的关键技术,而如何精确匹配用户兴趣和候选新闻是新闻推荐的核心。现有研究一般通过聚合用户浏览过的新闻来学习用户的兴趣向量,…

没有MAC电脑,如何申请苹果开发证书、上架APP Store?

【引言】 使用uni-app进行跨平台APP开发时,苹果ios平台最终还是要通过APP Store渠道发布,调试时uni-app基座也必须使用开发者证书签名后才能安装。对于使用MAC电脑的开发者,倒也不存在什么大障碍,照着文档操作就行,但是对于不使用MAC电脑,身边也没有MAC电脑,采购预算又紧…

知网文献下载助手 ——油猴脚本推荐

知网文献下载收费太贵了,只能逼我去找脚本来下载了。 在Greasyfork尝试了很多个脚本,坑爹的比较多,对比下来,我觉得这个“知网下载助手”比较容易用, 当然是纯免费的,需要的可以试试:知网下载助手https://greasyfork.org/zh-CN/scripts/492511

类人型自主机器人会打太极拳,但功夫很弱-斯坦福HumanPlus机器人

原文链接:https://newatlas.com/robotics/autonomous-humanoid-robot-shadows-humans/ The HumanPlus, with a 0-0 record, lands a 1, 2 left, right punch Stanford Humanplus HumanPlus以0比0的战绩,命中了1次左、右两拳。 斯坦福…

Rougamo、Fody 实现静态Aop

最近在看项目,看到别人使用Rougamo框架,好奇花了点时间仔细研究了,在这里记录一下。 0. 静态编织 Aop 首先,我们先了解什么是Aop? Aop 是指面向切面编程 (Aspect Oriented Programming),而所谓的切面,可以认为是具体拦截的某个业务点。 我们常用的aop框架是 AspectCore,…

WhaleStudio 2.6正式发布,WhaleTunnel同步性能与连接器数量再创新高!

在这个数据驱动的大模型时代,数据集成的作用和意义愈发重要。数据不仅仅是信息的载体,更是推动企业决策和创新的关键因素。作为全球最流行的批流一体数据集成工具,WhaleTunnel随着WhaleStudio 2.6版本正式发布,带来了多项功能增强和新特性,性能大幅提升,连接器和功能方面…

代码随想录算法训练营第四十二天 | 1049最后一块石头的重量II 494.目标和 474.一和零

1049.最后一块石头的重量 题目链接 文章讲解 视频讲解解题思路:将石头尽量分为相等的两堆,两堆最差即为所求结果石头的重量就是石头的价值动规五部曲:dp[j]:表示背包容量为j时可以装的石头的总价值 递推公式:dp[j] = max(dp[j], dp[j-stones[i]] + stones[i] 初始化:均初…

Apache DolphinScheduler社区又一PMC获推选通过!

PROFILE姓名:程鑫 公司:阿里云 职位:开发工程师 Github ID: rickchengx 从事领域:大数据调度系统开发 兴趣爱好:健身推举理由 他于2022年8月2日开始了他的DolphinScheduler之旅,在社区工作了将近两年,并于2023年5月12日成为Committer。成为Committer后的一年里,他继续保…

BOSHIDA 探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案

BOSHIDA 探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案 DC/AC电源模块是一种能够将直流电源转换为交流电源的装置。随着绿色能源的不断发展和应用,DC/AC电源模块在可再生能源、电动车辆、太阳能发电等领域中扮演着重要的角色。本文将着重探讨DC/AC电源模块为绿色能源…

Centos7 安装Rabbitmq3.9.11

安装erlang 安装依赖包yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel下载wget https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_src_24.1.7.tar.gz解压tar -zxvf otp_src_24.1.7.tar.gz转移到…

mysql数据库简介

一、数据库介绍 1.数据库基本概念 数据(Data) 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起 用来存储具体数据 数据库 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据…