doc / docx文件如何转换为降价或结构化文本?


68

是否有程序或工作流程来转换.doc.docx归档为Markdown或类似文本?

PS:理想情况下,我欢迎consolas将MS Word文档中的特定字体(例如)呈现为的选项text-code: ```....```


1
看起来pandoc现在支持直接从转换.docx.md包括数学公式。看看这里例如35
艾哈迈德

查看wordtomarkdown.com。Windows应用商店中有一个有用的应用程序。它的功能远不止Pandoc,包括表格,图像和代码。
布鲁诺

Answers:


81

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)  

3
使用自制软件(brew install pandoc
tdc

2
字表转换不正确-最终在MD中变成纯文本。
StephenBoesch '16

4
有什么办法可以保存图像吗?
克里斯(Chris)

1
关于将图像保存到Word文件之外的问题:将Word文档另存为HTML。Word将文档的所有图像放置在单独的文件夹中。可以选择另存为JPG或PNG ...
RBV

5
要保存图像,请将选项添加--extract-media=./到上面的命令中。它将创建一个media包含所有图像的文件夹,它们将正确显示在markdown文件中。
塞尔吉奥

14

选件

  1. 使用转换工具进行多文件转换。
  2. 对单个文件和高级字体使用WYSIWYG编辑器。


哪些转换工具?

我已经测试了这三个: (1)-Pandoc / (2)-Mammoth / (3)-w2m


潘多克

到目前为止,该高级转换工具支持多种文件类型(man page有关支持的文件类型,请参阅Pandoc的文档):

pandoc -f docx -t gfm somedoc.docx -o somedoc.md


NB
  • pandoc导出降价表(在Pandoc中为'pipe_tables'),请使用multimarkdowngfm输出格式。

  • 如果格式化为PDF,请为此pandoc使用LaTeX模板,因此,LaTeX如果该命令无法立即使用,则可能需要为您的OS安装软件包。LaTeX安装说明


哪些所见即所得的编辑器?

笔迹

要回答此特定问题(docx --> markdown),请使用Microsoft Word的Writeage插件。反之亦然markdown --> docx


如果您希望保留unicode字符表情符号并保持高级字体,则在文件格式之间使用复制和粘贴操作时,将从下面的编辑器中受益匪浅。请注意,这些不是本机对进行读写docx


更新:A4 vs美国信函

对于美国境外,请设置geometry变量:

pandoc -s -V geometry:a4paper -o outfile.pdf infile.md


脚注

这里值得一提-发现Markdown时并不是很明显,MultiMarkdown是迄今为止功能最丰富的Markdown格式,除其他外还支持元数据,目录,脚注,数学,表格和YAML。

但是Github的默认格式gfm也使用表格。我用gfmGithub / GitLab和MultiMarkdown其他所有东西。


查看wordtomarkdown.com。Windows应用商店中有一个有用的应用程序。它的功能远不止Pandoc,包括表格,图像和代码。
布鲁诺

11

猛mm象是众所周知的Word到HTML转换器,但现在支持Markdown编写器模块。当我上次检查时,猛mm象Markdown支持仍处于早期阶段,因此您可能会发现某些功能不受支持。与往常一样,请访问该网站以获取最新信息。

安装

要使用Javascript版本...安装NodeJS,然后安装Mammoth:

npm install -g mammoth

命令行

命令行将Word文档转换为Markdown ...

mammoth document.docx --output-format=markdown

API

NodeJS API转换为Markdown ...

var mammoth = require("mammoth");
mammoth.convertToMarkdown({path: "path/to/document.docx"});

特征:

猛mm象Markdown作家目前支持:

  • 列表(编号和项目符号)
  • 链接
  • 字体样式,如粗体,斜体
  • 图片

Mammoth命令行工具和API已移植到多种语言

无降价促销(2016年5月):

使用Markdown:


mammoth document.docx --output-format=markdown > document.md 为我工作以生成一个转换后的文件,因为似乎仍然不支持直接执行此操作
pollirrata

11

考虑到您在stackoverflow上问了这个问题,您可能想要一个程序化或命令行解决方案,为此我提供了另一个答案。

但是,替代解决方案可能是使用Microsoft Word的Writage Markdown插件

Writage将Word转换为Markdown WYSIWYG编辑器,因此您将能够像正常编辑Microsoft Word中的任何文档一样打开Markdown文件并对其进行编辑。也可以将Word文档另存为Markdown文件,而无需任何其他转换器。

在幕后,Writage使用Pandoc,您还需要安装Pandoc才能使此插件正常工作。

当前,它支持以下Markdown元素:

  • 标题
  • 列表(编号和项目符号)
  • 链接
  • 字体样式,如粗体,斜体
  • 桌子
  • 脚注

对于许多最终用户而言,这可能是理想的解决方案,因为他们不需要安装或运行任何命令行工具-而是坚持使用他们最熟悉的工具。


值得注意的是,Writage仅适用于Windows。我已经通过电子邮件发送笔者询问OS X.
戴夫·埃弗里特

8

您可以使用Word to Markdown(Ruby Gem)一步将其转换。转换可以很简单:

$ gem install word-to-markdown
$ w2m path/to/document.docx

它通过LibreOffice路由文档,但是也尽力根据标题的相对字体大小来语义化标题。

还有一个托管版本,就像拖放一样简单以进行转换。


感谢您共享托管版本;我喜欢这样,而不是在计算机上安装二进制文件。
罗恩

4

Word Markdown可能值得一试,或者使用通过HTMLZ使用CalibrePandoc进行此处介绍的过程,这是他们使用的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

1
虽然此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
爱德华·卢卡

@EduardLuca对不起,但您要我实际发布源代码吗?哦,您是说后者,是的,我可以总结一下……
Tobias Kienzler 2014年

仅链接答案背后的想法是,这些网站的内容可能会更改,或者将来可能会被删除,因此,最好将这些网站中的所有相关信息都包括在您的答案中,以便将来对人们有所帮助如果链接更改。这些相关信息可以是代码,也可以是您链接到的站点内容的摘要。
爱德华·卢卡

@EduardLuca我知道这一点(实际上我自己已经标记/拒绝了许多仅链接的答案),尽管我希望链接到这些工具可以在这里提供足够的起点。确实没有传达更多的信息……
Tobias Kienzler 2014年

1
我认为您发布的代码有很大帮助。我指的是networkcultures.org/digitalpublishing/2013/08/30/…,其中包含详细说明,但是很好的是您张贴了摘要bash :)
Eduard Luca 2014年


2

您可以使用以下Visual Basic脚本将Word文档从MS Word转换为Markdown:

https://gist.github.com/hawkrives/2305254

请按照“使用代码”下的说明在Word中创建一个新的宏。

注意:这会将当前打开的Word文档转换为Markdown,从而删除所有Word格式(标题,列表等)。首先保存要转换的Word文档,然后在运行宏之前将其再次保存为新文档。这样,您始终可以返回到原始Word文档进行更改。

这里有Word标记VB脚本的更多示例:

https://www.mediawiki.org/wiki/Microsoft_Word_Macros



0

如果您使用的是Linux,请尝试使用Pandoc(首先使用LibreOffice或其他工具将.doc / .docx转换为html,然后运行它)。

在Windows上(如果Pandoc不起作用),您可以尝试以下网站(在线演示,可以下载):Markdownify


Markdownify发出“严格标准:”-PHP消息,并pandoc -f html -t markdown -s mydoc.html -o mydoc.md产生纯/非重组文本(即与复制并粘贴到文本编辑器相同)。您对这两个有何经验?
罗伦兹·洛绍尔

0

对于项目符号列表,您可以将列表粘贴到Sublime Text中,然后使用multiselect(经过测试)或查找并替换(未经测试)来替换,例如将专有MS Word字符替换为---等等。

这不适用于标题,但可能对其他元素使用类似的技术。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.