如何将asciidoc转换成PDF格式?

时间:2018-05-22 22:54:28

标签: asciidoc

我尝试使用mybook.adocmybook.pdf转换为pandoc,并收到以下错误。

$ pandoc -s mybook.adoc -t asciidoc -o mybook.pdf
pandoc: cannot produce pdf output with asciidoc writer

是否有其他工具可以代替pandoc使用或与{{1}}一致使用? 如何将asciidoc转换为pdf?

8 个答案:

答案 0 :(得分:8)

如果您使用的是VS Code,请Ctrl + SHFT + P,然后键入AsciiDoc: Export document as pdf

答案 1 :(得分:5)

先决条件:所需要的只是Ruby(1.9.3或更高版本)

安装用于AsciiDoc的本机PDF转换器-Asciidoctor PDF

gem install asciidoctor-pdf --pre

运行

asciidoctor-pdf mybook.adoc

您应该在同一目录中获得文件mybook.pdf。

答案 2 :(得分:2)

AsciiDoc有几个工具链可以从AsciiDoc源渲染PDF。您可以使用基于Ruby的AsciiDoc - >虾 - >由Asciidoctor开发的PDF toolchain,或者您可以使用旧的AsciiDoc - > DocBook - > FOP toolchain。这些是渲染/发布程序,而Pandoc主要提供转换,最适合从另一种类型的源格式转换。

答案 3 :(得分:2)

将AsciiDoc文档转换为PDF的最简单方法如下-

  • 打开AsciiDocLive
  • 将文档粘贴到编辑器中并查看预览
  • 另存为HTML
  • 打开任何在线HTML到PDF转换器
  • 上传您新生成的HTML文件
  • 转换为PDF并下载。

完成。

答案 4 :(得分:1)

另一个我经常使用的工作流程是使用AsciiDoctor处理器从您的AsciiDoc文件创建HTML,并将自定义CSS样式表与打印样式规则链接:

asciidoctor -a stylesheet=path-to-stylesheet.css file.adoc

然后您可以在浏览器中打开HTML文件并打印为PDF。

对于更高级的样式,例如页码,页眉,页脚,分页符和列,可以使用PrinceXML(或其他类似产品)。这是一个命令行处理器,它将使用HTML文件使用的CSS中的样式规则将HTML文件转换为PDF。 PrinceXML应用CSS3标准中的样式规则,但浏览器尚不支持这些样式规则,从而使您可以创建样式精美的布局。

答案 5 :(得分:1)

如果已安装Docker,则可以使用AsciiDoctor Docker Image。然后,您可以按照以下说明以交互方式或以批处理方式使用图像:

先决条件

  1. 安装Docker
  2. 安装Docker映像:

    $ docker pull asciidoctor/docker-asciidoctor
    

通过执行以下命令来创建pdf:

$ cd [directory to where my book.adoc is located]
$ docker run --rm -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf mybook.adoc

说明

  • docker run启动Docker容器
  • --rm清理-执行命令后删除Docker容器
  • -v mount a volume到图片
  • $(pwd)获取当前目录的路径,例如上面[directory to where my book.adoc is located]的值
  • documents正在运行的容器中已安装的卷的名称
  • asciidoctor/docker-asciidoctor用于创建Docker容器的Docker映像的名称
  • asciidoctor-pdf实际触发pdf生成的命令
  • mybook.adoc用于从中生成pdf的AsciiDoc源文件的名称

另请参阅docker run文档

答案 6 :(得分:0)

在@Remis的回答之后,我使用了asciidoctor的pdf后端。

我不知道如何在nixos上安装asciidoctor-pdf,但设法find进行了以下替换:

asciidoctor -r asciidoctor-pdf -b pdf or asciidoctor-pdf

答案 7 :(得分:0)

我现在意识到从asciidoc到pdf的理想途径是首先将asciidoc转换为docbook。它采用了预期的asciidoc领域和docbook-> pdf转换器,并在各自的关注区域中使用了它们。

此外,我发现使用数学公式代替pandoc可以更方便地使用dblatex进行docbook-> pdf转换。因此,我的转换管道如下:

  

asciidoc -> asciidoctor -> 医生手册-> dblatex -> pdf >

示例制作文件:

make: my.adoc
  asciidoc -b docbook my.adoc
  dblatex my.xml

This discussion页表明asciidoc的主要目的是编译为docbook。