zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Windwos 安装Pandoc 工具,实现Typora 文档导出为docx

文档安装导出工具 实现 Typora docx pandoc
2023-06-13 09:17:12 时间

1. 介绍

原先都是使用Typora 导出为pdf文档。但是最近由于部分需求,需要将文档导出为word格式。

使用markdown写文档已经写习惯了。让我回到使用word写文档实在无法接受。

感觉太笨重了。而typora可以支持将文档导出为docx格式。那么我们就用这个功能就可以了。

但是实际上typora默认并不提供导出docx格式,而是通过一个第三方工具Pandoc来实现的。

就如同我们在Typora中将图片自动导入到远程的图床时使用PicGo软件一样。

Pandoc也是一个独立的软件,Typora可以直接调用系统中安装的Pandoc来实现word文档的导出而已。

1.2 Pandoc

Pandoc是一个开源的标记格式转换工具。可以实现各种文档格式的转换。

[Pandoc - About pandoc](https://www.pandoc.org/)

pandoc可以说是一个非常强大的标记格式文档转换工具了。

gitHub地址为:https://github.com/jgm/pandoc/

是一个用于从一种标记格式转换为另一种标记格式的Haskell库,也是一个使用该库的命令行工具。它可以从

  • bibtex (BibTeX bibliography)
  • biblatex (BibLaTeX bibliography)
  • commonmark (CommonMark Markdown)
  • commonmark_x (CommonMark Markdown with extensions)
  • creole (Creole 1.0)
  • csljson (CSL JSON bibliography)
  • csv (CSV table)
  • tsv (TSV table)
  • docbook (DocBook)
  • docx (Word docx)
  • dokuwiki (DokuWiki markup)
  • endnotexml (EndNote XML bibliography)
  • epub (EPUB)
  • fb2 (FictionBook2 e-book)
  • gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
  • haddock (Haddock markup)
  • html (HTML)
  • ipynb (Jupyter notebook)
  • jats (JATS XML)
  • jira (Jira/Confluence wiki markup)
  • json (JSON version of native AST)
  • latex (LaTeX)
  • markdown (Pandoc’s Markdown)
  • markdown_mmd (MultiMarkdown)
  • markdown_phpextra (PHP Markdown Extra)
  • markdown_strict (original unextended Markdown)
  • mediawiki (MediaWiki markup)
  • man (roff man)
  • muse (Muse)
  • native (native Haskell)
  • odt (ODT)
  • opml (OPML)
  • org (Emacs Org mode)
  • ris (RIS bibliography)
  • rtf (Rich Text Format)
  • rst (reStructuredText)
  • t2t (txt2tags)
  • textile (Textile)
  • tikiwiki (TikiWiki markup)
  • twiki (TWiki markup)
  • vimwiki (Vimwiki)

等格式,转换成:

  • asciidoc (AsciiDoc) or asciidoctor (AsciiDoctor)
  • beamer (LaTeX beamer slide show)
  • bibtex (BibTeX bibliography)
  • biblatex (BibLaTeX bibliography)
  • commonmark (CommonMark Markdown)
  • commonmark_x (CommonMark Markdown with extensions)
  • context (ConTeXt)
  • csljson (CSL JSON bibliography)
  • docbook or docbook4 (DocBook 4)
  • docbook5 (DocBook 5)
  • docx (Word docx)
  • dokuwiki (DokuWiki markup)
  • epub or epub3 (EPUB v3 book)
  • epub2 (EPUB v2)
  • fb2 (FictionBook2 e-book)
  • gfm (GitHub-Flavored Markdown), or the deprecated and less accurate markdown_github; use markdown_github only if you need extensions not supported in gfm.
  • haddock (Haddock markup)
  • html or html5 (HTML, i.e. HTML5/XHTML polyglot markup)
  • html4 (XHTML 1.0 Transitional)
  • icml (InDesign ICML)
  • ipynb (Jupyter notebook)
  • jats_archiving (JATS XML, Archiving and Interchange Tag Set)
  • jats_articleauthoring (JATS XML, Article Authoring Tag Set)
  • jats_publishing (JATS XML, Journal Publishing Tag Set)
  • jats (alias for jats_archiving)
  • jira (Jira/Confluence wiki markup)
  • json (JSON version of native AST)
  • latex (LaTeX)
  • man (roff man)
  • markdown (Pandoc’s Markdown)
  • markdown_mmd (MultiMarkdown)
  • markdown_phpextra (PHP Markdown Extra)
  • markdown_strict (original unextended Markdown)
  • markua (Markua)
  • mediawiki (MediaWiki markup)
  • ms (roff ms)
  • muse (Muse)
  • native (native Haskell)
  • odt (OpenOffice text document)
  • opml (OPML)
  • opendocument (OpenDocument)
  • org (Emacs Org mode)
  • pdf (PDF)
  • plain (plain text)
  • pptx (PowerPoint slide show)
  • rst (reStructuredText)
  • rtf (Rich Text Format)
  • texinfo (GNU Texinfo)
  • textile (Textile)
  • slideous (Slideous HTML and JavaScript slide show)
  • slidy (Slidy HTML and JavaScript slide show)
  • dzslides (DZSlides HTML5 + JavaScript slide show)
  • revealjs (reveal.js HTML5 + JavaScript slide show)
  • s5 (S5 HTML and JavaScript slide show)
  • tei (TEI Simple)
  • xwiki (XWiki markup)
  • zimwiki (ZimWiki markup)

而且部分格式还能够互相转换。

Pandoc还可以通过LaTeX、Groff ms或HTML生成PDF输出。

上面只是介绍了部分转换,更详细的可以通过Pandoc官网介绍进行了解和查询。

2. 安装Pandoc

安装方式比价简单,通过:https://github.com/jgm/pandoc/releases

选择不同的系统版本进行安装就可以了:

windows系统安装比较简单。直接下载msi文件进行安装即可。

PS:部分小伙伴可能习惯了界面操作,但是Pandoc安装完毕是一个命令行的,所以我们如果要使用安装的Pandoc 只能是通过cmd 或 PowerShell 进行操作

下面介绍windows 的安装步骤。首先下载安装包后,双击pandoc-2.19.2-windows-x86_64.msi 文件。

勾选: I accept the terms in the License Agreement 意思就是同意Pandoc的使用许可条款。这个所有软件都有。就不多说了。

而下面还有一个: Install for all users of this machine 。意思就是是否为这个电脑的所有用户都安装Pandoc。简单理解就是安装完毕后是不是所有登录用户都可以使用Pandoc软件。 我们的自己的电脑通常是只有一个账户的。可以选择可以不选择。

选择完毕后,执行安装就可以了。

安装完毕后出现的成功界面如下:

在这个结束界面中,已经说明了我们的Pandoc安装到了C:\Program Files\Pandoc 目录下。我们可以使用Cmd 或 Powershell 命令行工具运行了。

PS:简单理解就是,安装完毕后会自动将环境变量给配置上。所以我们可以通过命令行进行操作Pandoc了。它没有一个窗口界面让我们通过鼠标点击进行执行的,它只有命令模式。

2.1 使用 Pandoc

安装完毕后,我们就可以通过命令行操作pandoc了。例如我们查询本机的Pnadoc版本:

PS C:\Users\zinyan> pandoc -v
pandoc.exe 2.19.2
Compiled with pandoc-types 1.22.2.1, texmath 0.12.5.2, skylighting 0.13,
citeproc 0.8.0.1, ipynb 0.2, hslua 2.2.1
Scripting engine: Lua 5.4
User data directory: C:\Users\zinyan\AppData\Roaming\pandoc
Copyright (C) 2006-2022 John MacFarlane. Web:  https://pandoc.org
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.
PS C:\Users\zinyan>

可以看到一些详细信息。

下面列一些基本的操作命令:

  1. 将txt文件转换为html文件: pandoc MANUAL.txt -o example1.html
  2. 将txt文件转为rtf文件: pandoc -s MANUAL.txt -o example7.rtf
  3. 将txt转为pdf文件: pandoc MANUAL.txt --pdf-engine=xelatex -o example13.pdf

等等还有不少的操作方法,具体的可访问:https://www.pandoc.org/demos.html

pandoc提供的各种demo指令。

3. Typora 添加Pandoc

当我们本地安装好Pandoc之后,就可以将路径配置到Typora中,这样Typora在进行导出为word文档时,就会自动调用相关的转换命令,将我们的markdown文档转换为word文档了

选择菜单中的文件->导出->导出设置

在打开的界面中 选择:通用

然后将我们的Pandoc安装路径配置到文件夹中 ,由于Typora会自动检测路径,所以我们点击右侧得到文件夹按钮,其实会自动打开到我们的Pandoc安装目录。选择:pandoc.exe 文件后,点击确认就可以将Pandoc配置完毕了。

配置完毕的效果如下:

之后,我们就可以正常的使用Typora进行各种文件的导出了。

除了可以导出为word的 docx格式,还有RTF,Epub,LaTex,Media Wiki ,Textile,OepnOffice,reStructuredText,OPML等

除此之外我们还可以添加各种Typora没有支持的,但是Pandoc支持的格式,

选择Export中的底部的加号按钮,然后再选择自定义。就可以出现上面的效果了。我们输入Pandoc的支持命令。就可以任意灵活的配置我们需要的文档格式了。

4. 其他

我们如果由于网络关系,无法访问Github进行下载Pandoc安装包,可以关注我的公众号,输入:pandoc 获取我下载好的各种系统环境的安装包。(PS:不一定会保证一直都是最新版本哦)

而如果不想安装的话,可以使用Pandoc提供的线上转换地址,https://www.pandoc.org/try/ 进行转换操作。