是否有将文件转换为 Markdown 或类似文本的程序或工作.doc
流程.docx
?
PS:理想情况下,我会欢迎将 MS Word 文档中的特定字体(例如consolas
)呈现为text-code: ```....```
.
Pandoc 支持直接从 docx 到 markdown 的转换:
pandoc -f docx -t markdown foo.docx -o foo.markdown
支持几种降价格式:
-t gfm (GitHub-Flavored Markdown)
-t markdown_mmd (MultiMarkdown)
-t markdown (pandoc’s extended Markdown)
-t markdown_strict (original unextended Markdown)
-t markdown_phpextra (PHP Markdown Extra)
-t commonmark (CommonMark Markdown)
具体关于问题 ( docx --> markdown
),请使用 Microsoft Word 的Writeage插件。它也可以反过来工作markdown --> docx
。
我已经测试了这三个:(1) Pandoc (2) Mammoth (3) w2m
到目前为止,支持多种文件类型的高级转换工具(有关支持的文件类型,请参见 Pandoc man page
):
pandoc -f docx -t gfm somedoc.docx -o somedoc.md
要pandoc
导出降价表(pandoc 中的“pipe_tables”),请使用multimarkdown
或gfm
输出格式。
如果格式化为 PDF,请为此pandoc
使用LaTeX
模板,因此LaTeX
如果该命令无法开箱即用,您可能需要为您的操作系统安装软件包。LaTeX 安装说明
对于docx
,使用Writeage。
如果您希望保留unicode 字符、表情符号并保持优质字体,在文件格式之间使用复制和粘贴操作时,您将从下面的编辑器中获得一些帮助。请注意,这些不会以本机方式读取或写入docx
.
对于程序等效项,您可能会通过调用不同的pdf 引擎及其各自的选项来获得一些结果,但我尚未对此进行测试。pandoc 默认为“pdflatex”。
pandoc --pdf-engine=
pandoc --pdf-engine-opt=STRING
对于美国以外的地区,设置几何变量:
pandoc -s -V geometry:a4paper -o outfile.pdf infile.md
这里值得一提的是——在发现 Markdown 时并不明显的是MultiMarkdown是迄今为止功能最丰富的 Markdown 格式。
MultiMarkdown 支持元数据、目录、脚注、数学、表格和 YAML。
但是 Github 使用的默认格式gfm
也支持表格。我gfm
用于 Github/GitLab 和MultiMarkdown
其他一切。
鉴于您在 stackoverflow 上提出了这个问题,您可能想要一个编程或命令行解决方案,我已经为其提供了另一个答案。
但是,另一种解决方案可能是使用 Microsoft Word 的Writage Markdown 插件。
Writage 将 Word 变成您的 Markdown WYSIWYG 编辑器,因此您将能够打开 Markdown 文件并对其进行编辑,就像您通常在 Microsoft Word 中编辑任何文档一样。也可以将您的 Word 文档保存为 Markdown 文件,而无需任何其他转换器。
在幕后,Writage 使用Pandoc,您还需要安装它才能使此插件正常工作。
它目前支持以下 Markdown 元素:
对于许多最终用户来说,这可能是理想的解决方案,因为他们不需要安装或运行任何命令行工具,而只需坚持使用他们最熟悉的工具。
Mammoth以 Word 到 HTML 转换器而闻名,但它现在支持Markdown 编写器模块。当我上次检查时,Mammoth Markdown 支持仍处于早期阶段,因此您可能会发现某些功能不受支持。像往常一样...查看网站了解最新详情。
要使用 Javascript 版本...安装NodeJS,然后安装 Mammoth:
npm install -g mammoth
将 Word 文档转换为 Markdown 的命令行...
mammoth document.docx --output-format=markdown
NodeJS API 转换为 Markdown ...
var mammoth = require("mammoth");
mammoth.convertToMarkdown({path: "path/to/document.docx"});
Mammoth Markdown writer 目前支持:
Mammoth 命令行工具和 API 已移植到多种语言:
没有降价(2016 年 5 月):
使用降价:
您可以使用Word to Markdown (Ruby Gem) 一步完成转换。转换可以很简单:
$ gem install word-to-markdown
$ w2m path/to/document.docx
它通过 LibreOffice 路由文档,但也最好根据它们的相对字体大小对标题进行语义化。
还有一个托管版本,只需拖放即可进行转换。
Word to Markdown可能值得一试,或者这里描述的过程通过 HTMLZ使用Calibre和Pandoc ,这是他们使用的 bash 脚本:
#!/bin/bash
mkdir temp
cp $1 temp
cd temp
ebook-convert $1 output.htmlz
unzip output.htmlz
cd ..
pandoc -f html -t markdown -o output.md temp/index.html
rm -R temp
从这里:
unoconv -f html test.docx
pandoc -f html -t markdown -o test.md test.html
您可以使用此 Visual Basic 脚本将 Word 文档从 MS Word 中转换为 Markdown:
https://gist.github.com/hawkrives/2305254
按照“使用代码”下的说明在 Word 中创建新宏。
注意:这会将当前打开的 Word 文档转换为 Markdown,从而删除所有 Word 格式(标题、列表等)。首先保存您计划转换的 Word 文档,然后在运行宏之前将该文档再次保存为新文档。这样,您始终可以返回原始 Word 文档进行更改。
这里有更多 Word 到 markdown VB 脚本的示例:
这是一个用 Ruby 构建的开源 Web 应用程序来执行此操作: https ://word2md.com
如果您使用的是 Linux,请尝试Pandoc(首先使用 LibreOffice 或其他工具将 .doc/.docx 转换为 html,然后运行它)。
在 Windows 上(或者如果 Pandoc 不工作),你可以试试这个网站(在线演示,你可以下载它):Markdownify
对于项目符号列表,您可以将列表粘贴到 Sublime Text 中并使用多选(已测试)或查找和替换(未测试)来替换例如专有的 MS Word字符-
等--
这不适用于标题,但可以对其他元素使用类似的技术。