热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pandoc把word转为html,利用Pandoc实现文档格式转换

应用场景我喜欢用Markdown写文档,但不是所有读者都愿意花时间学习它,所以我需要将Markdown转换为他们习惯接受的格式,比如doc

应用场景

我喜欢用 Markdown 写文档,但不是所有读者都愿意花时间学习它,所以我需要将 Markdown 转换为他们习惯接受的格式,比如 docx 或 html;偶尔需要做幻灯片演示,也可以用 Markdown 来写,然后转换为幻灯片(Slideshow)。

Pandoc 的最基本的应用场景就是做这类转换。

当然,Pandoc 能做的远远不止这些。实际上它是一个非常强大的文档格式转换工具,支持数十种文档格式互转。至于有多强大,作者有张个图表,大家感受下。

本文仅以 Windows 平台为例介绍 Pandoc 最基础的应用方法。

安装使用

推荐在 Github Pandoc Releases 页面下载适合自己操作系统的最新版本安装包,一路按默认设置安装即可。

安装完看不到软件界面?别担心,一切都在命令行中完成!CTRL+R 输入 cmd进入命令提示符,运行下列命令:

pandoc --version

如果安装成功,可以看到 Pandoc 的当前版本和其他相关信息。

进入到 Pandoc 的工作目录,可能需要用到以下常用 cmd 命令:

进入F盘,直接运行 F:

查看子目录和文件,运行 dir

进入 myforder 文件夹,运行 cd myforder

进入上级目录,运行 cd ../

进入根目录,运行 cd /

按上下方向键可以快速键入前后输入的命令

Pandoc 命令格式

查看帮助,运行

pandoc --help

可以看到 Pandoc 的命令格式

基本格式

pandoc [options(选项)] [input-file(输入文件)]

文件转换示例

将 Markdown 格式转换为 Html。下面这条命令将 input.md 转为html并且输出为 output.html

pandoc -o output.html input.md

Pandoc 会自动根据文件扩展名判断文件格式,也可指定输入和输出文件格式:

pandoc -f markdown -t html -o output.html input.md

除了文件,还可以转换一个网页:

pandoc -f html -t markdown -o index.md http://miu.im

指定 css 样式,用到 -c 选项

pandoc -c style.css -o output.html input.md

生成独立的文件 (Standalone 模式)

pandoc -s -o output.html input.md

生成目录,--toc 可以自动提取 h1 - h6 并生成目录,使用--toc-depth 控制输出的目录级别,默认值是3,就是说会自动提取h1 - h3 作为输出文件的目录。

pandoc -c style.css -o output.html --toc --toc-depth=3 input.md

更多示例请参考官方 Demos 。

生成幻灯片

利用 Pandoc 可以方便生成 Html 幻灯片,类似 PowerPoint、Keynote的效果。目前 Pandoc 对以下几种 Html 幻灯框架支持:

这里我只介绍 reveal.js 的使用(我只用过这个..不过其他几个也大同小异 😳 )。

reveal.js 是一个非常流行的 Html 幻灯片框架,通过编辑 Html 创建幻灯片,不过直接编辑 Html 相当繁琐。使用 Pandoc 的好处就是,一条命令就可以解决问题,不需要编辑 Html。

准备 reveal.js

在 reveal.js Release 页面下载 reveal.js 2.6.2 源码包(目前 Pandoc 1.12 还不能很好支持 reveal.js 3.0.0,主要是指定主题风格无效,可手动调整)。

解压 reveal.js 至工作目录,将解压得到的文件夹重命名为 reveal.js (去掉版本号)。工作目录结构类似这样:

F:\workspace

│ slides.md

└─reveal.js

├─css

├─js

├─lib

├─plugin

└─test

Markdown 文件 slides.md 的内容如下:

% Nonsense Stuff

% John Doe

% March 22, 2005

# In the morning

## Getting up

- Turn off alarm

- Get out of bed

## Breakfast

- Eat eggs

- Drink coffee

# In the evening

## Dinner

- Eat spaghetti

- Drink wine

------------------

![picture of spaghetti](images/spaghetti.jpg)

## Going to sleep

- Get in bed

- Count sheep

生成幻灯片

pandoc slides.md -o slides.html -t revealjs -s

指定主题,可以在 /css/theme 文件夹下查看支持的主题

pandoc slides.md -o slides.html -t revealjs -s -V theme=night

幻灯片级别

reveal.js 默认每个2级标题生成一个幻灯片,高于2级的标题(1级标题)生成一张独立的仅包含标题的幻灯片,而低于2级的标题(3级标题)将存在于上一级标题的幻灯片中,不单独生成新的幻灯片。

可以使用 --slide-level 选项覆盖默认的幻灯片级别,不过严重不推荐。

使用分割线可强制生成新的幻灯片,以下任意一种均可:

***

---

+++

逐条显示

生成幻灯片时加入 -i 选项,如果幻灯片中有列表,列表中每一项会逐条显示。

两段文字显示之间的人为停顿,用如下分割线:

. . .

幻灯片切换方式 transition, 可选切换方式有:"default", "cube","page", "concave", "zoom", "linear", "fade", "none"

保存为完全独立文件 --self-contained。添加这个选项后会自动将需要的 css、js、图片、字体等资源都整合到一个单独的 html 中。(不过实测该选项有一些问题,还在摸索中...)

一个完整的示例,生成的幻灯片预览。

pandoc slides.md -o slides.html -t revealjs -s -i -V theme=night -V transition=default --toc --toc-depth=1

相关链接

参考链接



推荐阅读
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • 本文详细介绍了`android.os.Binder.getCallingPid()`方法的功能和应用场景,并提供了多个实际的代码示例。通过这些示例,开发者可以更好地理解如何在不同的开发场景中使用该方法。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
author-avatar
馨海之洋_895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有