如何创建一个PDF-out-of-Sphinx文档工具

问题描述 投票:9回答:5

按照此链接尝试从Sphinx生成pdf:

https://www.quora.com/How-to-create-a-PDF-out-of-Sphinx-documentation-tool

$ sphinx-build -b pdf source build/pdf

Error: Cannot find source directory  `/Users/seb/mydocs/source'.


$ make all-pdf
make: *** No rule to make target `all-pdf'.  Stop.
$ make pdf
make: *** No rule to make target `pdf'.  Stop.

自从在OSX中尝试过:

$ conda install -c dfroger rst2pdf=0.93
Fetching package metadata .........
Solving package specifications: .
Error: Package missing in current osx-64 channels: 
  - rst2pdf 0.93*

您可以在anaconda.org上搜索包

anaconda search -t conda rst2pdf

编辑:

在pip之后安装rst2pdf

install rst2pdf
register rst2pdf in your conf.py Sphinx config
extensions = ['sphinx.ext.autodoc','rst2pdf.pdfbuilder']

但添加'rst2pdf.pdfbuilder'会导致

Extension error:
Config value 'math_number_all' already present
make: *** [html] Error 1


$ sphinx-build -bpdf sourcedir outdir

但是我指定什么作为sourcedir和outdir?请举例。

编辑:

现在制作HTML后

然后:

 $ rst2pdf index.rst output.pdf
 index.rst:14: (ERROR/3) Unknown directive type "toctree".

 .. toctree::

 :maxdepth: 2

介绍教程multiple_jobs部署项目

index.rst:26: (ERROR/3) Unknown interpreted text role "ref".
index.rst:27: (ERROR/3) Unknown interpreted text role "ref".
index.rst:28: (ERROR/3) Unknown interpreted text role "ref".

也:

$rst2pdf.py index.rst -o mydocument.pdf

是否产生了mydocument.pdf,但与html和toc完全不同,所有页面都不存在?

Image of pdf verse HTML same page

pdf python-sphinx
5个回答
5
投票

您可以避免使用rst2pdf并使用make pdflatex通过latex文件构建pdf输出。

cf更多信息:

https://docs.typo3.org/typo3cms/extensions/sphinx/AdvancedUsersManual/RenderingPdf/


5
投票

我已经成功通过遵循配置更改in this link为DevStack文档生成PDF文件:

以下是步骤:

  1. 编辑你的conf.py(编辑或附加值) extensions = ['rst2pdf.pdfbuilder'] pdf_documents = [('index', u'rst2pdf', u'Sample rst2pdf doc', u'Your Name'),]
  2. 如有必要,安装“rst2pdfpip install rst2pdf
  3. 像这样构建PDF文件: sphinx-build -b pdf doc/source doc/build

1
投票

Found this related post发现rst2pdf打破了Sphinx 1.4.1中的数学渲染,因为它导入了一个虚拟数学模块。

rst2pdf.pdfbuilder:setup()中,它在内部调用mathbase.setup()来安装虚拟数学模块。它会导致冲突并引发错误。

运行sphinx-build -b pdf时我遇到了同样的错误

扩展错误: 配置值'math_number_all'已存在

现在看乳胶选项,并在@tfv发布时导出为pdf。 pdflatex is a larger universe of TeX distribution


1
投票

一定要看看http://rst2pdf.ralsina.me/handbook.html#sphinx

以下适用于Ubuntu 16。

但是,安装一个完整的LaTex套件可能不如试图让这个工具运行那么痛苦;它对错误非常敏感,难以使用。

我看了一眼(https://tex.stackexchange.com/a/95373),看起来令人生畏......

这更令人鼓舞:https://milq.github.io/install-latex-ubuntu-debian/

我做到了:

sudo apt-get install texlive-full
make clean latexpdf

值得您耐心(和磁盘空间)安装。我摆脱了rst2pdf。


1
投票

通过Latex成功实现Pdf生成(适用于Windows 10)...无需更改Sphinx中现有的conf.py文件...最佳解决方案是安装MiKTeX ....安装Perl(ActiveState)....运行后sphinx类型'make HTML'类型'make latex'然后制作latexPdf ...这解决了我的问题。


1
投票

这是来自official Sphinx documentation。如果您的机器中安装了pdfTex工具,您只需:

$ make latexpdf

然后,生成的pdf文件将在_build/latex/<PROJECT-NAME>.pdf

因此,从头开始的完整过程如下:

$ pip install -U sphinx # install the package
$ sphinx-quickstart # create a new project (answer the questions)
$ make latexpdf # compile and generate pdf file

请注意,您也可以“选择”安装编辑文件config.py所需的任何扩展名

© www.soinside.com 2019 - 2024. All rights reserved.