使用MD2Word导出word文档

为什么会有MD2Word这个开源工具?

万事皆有因果,所以这东西也不是闲的蛋疼才搞出来的。当初是有个需求,把文本内容导出到word。粗略一想,好像不难。估计网上大把大把的资料。

找了一圈,发现成型的做法基本没有。有个html转word的方式,使用poi组件的。使用了下,可以满足需求,但是,确定比较明显:

  1. 兼容性不强,mac中用pages是打不开的。
  2. 图片非本地保存,是联网图片。这意味着,用户断网之后,打开这个文档,是看不到图片的。

这两点是比较致命的缺陷,看起来就不够专业。

想了想,既然没有这方面的成品可以使用,那就自己写一个吧。于是,就写了这么个东西。

MD2Word可以干嘛?

顾名思义,这是一个markdown文本转word文档的工具类,后期其实可以扩展为markdown文本转PDF,word等等文档的一个工具类。当然,这是后话。

之所以使用markdown,是因为markdown比较好解析,而且md文本的内容会比较规范。另外,html转md也是比较好处理的。

目前MD2Word支持大部分markdown的基本语法,暂不支持的语法有:链接(link),表格(table),无序和有序列表。

  • 链接:由于本人对于poi的api还不熟,暂时不知道怎么在word内容中加入链接。如有知道是使用哪个api的朋友,可以告知一下
  • 表格:暂不支持表格语法的解析,会有支持的时候的。但word文档的输出其实是可以支持表格的,需要使用的导出方法为:WordFactory.produce(List<Block> list, String outputFilePath)
  • 无序和有序列表:这个其实使用原生的markdown文本输出貌似就很不错了。

MD2Word导出的word文档,在微软的office word中格式是最好的,毕竟poi开发的时候,也是以支持ms word为主。在wps中也还不错。在pages中内容排版基本正常,部分样式不支持。

怎么获取MD2Word这个开源工具?

代码已经放到:https://git.oschina.net/cevin15/MD2Word

有兴趣的可以star一下,想使用的可以fork一下。

关于MD2Word的一点说明

使用很简单,用 WordFactory 提供的方法即可。

如果觉得默认的word样式不符合自己的要求,可以fork项目之后,通过修改 Poi3Decorator 这个类来实现。

另外,其实花在这个工具上总的时间还只有差不多一个星期吧。bug肯定有,后面会继续优化完善的。

最后在发一次地址:https://git.oschina.net/cevin15/MD2Word

时间: 2024-08-02 17:02:41

使用MD2Word导出word文档的相关文章

java导出word文档

使用freemarker模板导出word文档,用的比较多.这里也是采用的这种方式. 1  编辑一个word文件的模板,用于在程序中需要读入填充在模板中的数据先用字母代替,注意word版本为word2003或高于这个版本: 如:test.doc 2 把模板另存为xml文件: 如:test.xml 3 在xml中查找之前用字母代替的值 加上${} ,如${test}  ${guojia},把文件名改为test.ftl; 4 在项目的WebContent目录下新建一个文件夹,把test.xml放进去:

通过NPOI导出Word文档

1 XWPFDocument doc = new XWPFDocument(); 2 XWPFParagraph p0 = doc.CreateParagraph(); 3 p0.Alignment = ParagraphAlignment.LEFT; 4 5 XWPFRun r0 = p0.CreateRun(); 6 r0.FontFamily = "宋体"; 7 r0.FontSize = 18; 8 r0.IsBold = true; 9 r0.SetText("未登

C#,WPF使用word模板导出word文档

使用word模板导出word文档,首先需要在word模板中插入书签: 根据创建的书签名和位置,将需要写入的内容插入到word文件中. 需要引用  Microsoft.Office.Interop.Word;在添加引用-程序集中搜索可以找到. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Windows; usin

C# 导出word文档及批量导出word文档(1)

这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量导出word文档的,通过把文件打包成压缩包,以文件流的方式输出下载.aspose.word.dll最好使用最新版的,14.5或者更高,我使用的是14.5版本,页面是采用mvc的语法.在这里感谢赵某人为我提供的帮助.         首先制作好word模板,使用模板可以避免在代码中对word进行排版,方便简单.

.NET通过调用Office组件导出Word文档

.NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word模板中,再反馈给客户端下载. 实现思路如下: 利用微软提供的Office的组件来完成,在服务器端指定目录放置一个word模板(该模板中需要替换的数据信息用书签标记好),当请求过来的时候,读取模板信息并将书签内容替换成从数据库获得的信息在返回给客户端下载即可,代码如下: #region 根据申请单ID号和模板生

Java 用Freemarker完美导出word文档(带图片)

Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject free XML editor) 实现步骤 1.用Microsoft Office Word打开word原件: 2.把需要动态修改的内容替换成***,如果有图片,尽量选择较小的图片几十K左右,并调整好位置: 3.另存为,选择保存类型

自动生成并导出word文档

今天很荣幸又破解一现实难题:自动生成并导出word文档 先看页面效果: word效果: 代码: 先搭建struts2项目 创建action,并在struts.xml完成注册 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

JAVA原始的导出excel文件,快捷通用 方便 还可以导出word文档哦

现在导出excel基本上都是用poi了,当报表格式很负责的时候 开发难度会加大 如果报表有格式有变化 那就更复杂了,先发现一个很老的技术,可以解决格式复杂的报表. 实例代码如下: <%@ page contentType="application/vnd.ms-excel;charset=GBK" %> <%@page import="java.net.URLEncoder"%> <% String filedisplay = &quo

使用PHP导出Word文档的原理和实例

原理  一般,有2种方法可以导出doc文档,一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法.安装过office的服务器可以调用一个叫word.application的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器会真的去打开一个word客户端).理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费. 第2种方法,就是用PHP将我们的doc文档内容直