多个rst文件合并一个pdf的问题

22 views
Skip to first unread message

vbarter

unread,
Dec 17, 2008, 1:20:13 AM12/17/08
to pyth...@googlegroups.com
hi,all:

    遇到一个问题,现在有多个rst文件,想把它们合并成一个pdf文件,单个rst文件用rst2pdf.py工具即可转换,中文也没有问题。

     不知道哪位同学遇到类似问题?

     当然,生成多个pdf后合并一个是可以的,但考虑到要添加书签的话就不方便了。

Zoom.Quiet

unread,
Dec 17, 2008, 1:25:26 AM12/17/08
to pyth...@googlegroups.com
2008/12/17 vbarter <yzcai...@gmail.com>:

> 遇到一个问题,现在有多个rst文件,想把它们合并成一个pdf文件,单个rst文件用rst2pdf.py工具即可转换,中文也没有问题。
> 不知道哪位同学遇到类似问题?
> 当然,生成多个pdf后合并一个是可以的,但考虑到要添加书签的话就不方便了。
digg fllow this:
Repository - markup - projects: python/trunk/Doc/Makefile
http://svn.python.org/view/python/trunk/Doc/Makefile?rev=66745&view=markup


--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
Free as in Freedom! 哲思自由软件社区:http://zeuux.org

Jiahua Huang

unread,
Dec 17, 2008, 1:38:08 AM12/17/08
to pyth...@googlegroups.com
2008/12/17 vbarter <yzcai...@gmail.com>:

先合并 rst 好了

FireBird

unread,
Dec 17, 2008, 3:07:05 AM12/17/08
to pyth...@googlegroups.com
顺便问一下,有没有直接制作pdf文件的方法?

2008/12/17 Jiahua Huang <jhuang...@gmail.com>:

Zoom.Quiet

unread,
Dec 17, 2008, 3:11:45 AM12/17/08
to pyth...@googlegroups.com
2008/12/17 FireBird <ygo...@gmail.com>:
> 顺便问一下,有没有直接制作pdf文件的方法?
>
OOo
print as PDF

--
http://zoomquiet.org
'''过程改进乃是催生可促生靠谱的人的组织!'''
多吃菜,少喝酒;听老婆的话,跟党走!

Jiahua Huang

unread,
Dec 17, 2008, 3:17:16 AM12/17/08
to pyth...@googlegroups.com
2008/12/17 FireBird <ygo...@gmail.com>:
> 顺便问一下,有没有直接制作pdf文件的方法?
>

我贴过的 rst2pdf.py 就是 ReST 直接生成 PDF

vbarter

unread,
Dec 17, 2008, 5:25:52 AM12/17/08
to pyth...@googlegroups.com
谢谢各位。

请教下jiahua Hunag:
我把两个a.rst和b.rst文件合并成一个pdf。每个rst中都有一个标题,我想合并后能每个标题独立一页,比如:

a.rst:
--------------------------
第一章
-------------------------

b.rst:
-------------------------
第二章
--------------------------

如果cat b.rst >> a.rst 后,rst2pdf.py运行会出错。

是rst格式问题,还是rstpdf.py问题呢?这个脚本还没仔细看,现在还不知道里面的处理细节

2008/12/17 Jiahua Huang <jhuang...@gmail.com>

Jiahua Huang

unread,
Dec 17, 2008, 6:10:22 AM12/17/08
to pyth...@googlegroups.com
2008/12/17 vbarter <yzcai...@gmail.com>:

> 谢谢各位。
>
> 请教下jiahua Hunag:
> 我把两个a.rst和b.rst文件合并成一个pdf。每个rst中都有一个标题,我想合并后能每个标题独立一页,比如:
>
> a.rst:
> --------------------------
> 第一章
> -------------------------
>
> b.rst:
> -------------------------
> 第二章
> --------------------------
>
> 如果cat b.rst >> a.rst 后,rst2pdf.py运行会出错。
>
> 是rst格式问题,还是rstpdf.py问题呢?这个脚本还没仔细看,现在还不知道里面的处理细节
>

贴下出错信息,
或可否贴下你的 rst 文件

huliuhe

unread,
Dec 17, 2008, 8:30:35 PM12/17/08
to pyth...@googlegroups.com
用sphinx 试试。  写文档很方便。 http://sphinx.pocoo.org/ 

2008/12/17 Jiahua Huang <jhuang...@gmail.com>

limodou

unread,
Dec 17, 2008, 8:46:33 PM12/17/08
to pyth...@googlegroups.com
2008/12/18 huliuhe <hul...@gmail.com>:

> 用sphinx 试试。 写文档很方便。 http://sphinx.pocoo.org/
>

有没有sphinx教程之类的东西啊。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: (new)http://http://hi.baidu.com/limodou
(old)http://www.donews.net/limodou

@@

unread,
Dec 17, 2008, 8:51:04 PM12/17/08
to pyth...@googlegroups.com
网站上有一个pdf的
不过感觉写的好长。。都没看下去。。

2008/12/18 limodou <lim...@gmail.com>

huliuhe

unread,
Dec 17, 2008, 8:56:09 PM12/17/08
to pyth...@googlegroups.com


2008/12/18 @@ <ask...@gmail.com>

huliuhe

unread,
Dec 17, 2008, 8:56:30 PM12/17/08
to pyth...@googlegroups.com

网站上有pdf文档。下面的是我个人从里面提取的一些东东。


python, django 等等的 文档,都是用这个做的。


sphinx 基础


简介

sphinx 是一个用python写的,可以根据restructtxt 构建文档的工具。可以把一系列的 reStructuredText文件转换为其他格式,而且可以自动生成交叉参照,索引等。

版本依赖:

python 2.4 以上 pygments (可选),docutils0.4 以上

设置文档源文件夹

文档源目录(包含reStructuredText文件的最上层目录),通常情况下,这个目录也包 含一个叫conf.py的文件。当然,在新版本中(0.3以上),这个文件也可以放在"配置 目录"(configration directory)。运行 sphinx-quickstart 可以产生 源文档目录, 里面有conf.py

build 命令

示例 >sphinx-build -b latex sourcedir builddir

sourcedir 就是文档源文件夹,builddir是build的输出目录。-b选项选择一个builder。示 例中将构建 latex 文件。

一些选项的介绍:

-a

这个重新生成所有文件,默认只是生成新的,或者改变过的文件。

-E

不用先前生成的environment,全部重新build。上一次构建时间为A, 默认情况下,只 是构建A后新加的、或者修改过的。

-d path

sphinx首先读入源文件,分析并产生一些中间文件(doctree pickles)。通常这些文件放 在builddir/.doctrees 下,-d 这个选项,可以改变这个缓存目录。

-c path

不要在sourcedir下寻找conf.py, 而是在-c 制定的配置目录path中寻找,注意,那些 在conf.py 中定义的文件,目录等配置值(configuration values)都是相对配置目录的。 因此那些文件,目录也要放置到对应的位置。

-D setting=value

覆盖conf.py中的配置值,(这个值必须是一个字符串)

-N

不带色彩输出。(windows 上不能带色输出,悲哀)

-q

除了warnning和error ,什么也不输出

-P

debugger的时候用,

可以在sourcedir builddir 后面加上文件,sphinx就会只构建这些文件,以及他们依赖的 文件。

========================================================================

文档结构

文档名称

reST源文件可以有不同的扩展名,(比如.txt,.rst 。扩展名可以用 source_suffix配置) 不同的操作系统有不同的路径分隔符,Sphinx 从源文档文件夹中抽取符合扩展名的文件。 并去掉扩展名,路径分隔符转换为斜杠(slashes)。文档中的交叉参照也是依据这个路径

目录(TOC tree)

reST不支持多个文档连接,或者把一个文档输出多个文件。Sphinx自定义了指令,用于表示 组成文档的多个文件间的关系。 其中文档树 toctree指令是核心元素

. . toctree::

这条指令(..toctree::)在文档当前位置插入一个目录 "TOC tree",他包括几个独立的 子目录(TOCs)。maxdepth选项用于表示树的深度,默认情况下。包括所有层。

比如

.. toctree::
:maxdepth: 2

intro
strings
datatypes
numeric
(many more documents listed here)

以上代码实现了两个功能:

  • 子项intro等的目录被插入到文档这个地方,其深度为2. (这个表述不清,实际使用 一下,就明白了。)
  • Sphinxt通过子目录描述知道了intro,strings 等的顺序,并且知道这些是当前文档 的子文档。通过这些信息,它产生next chapter,previous chpter,和 parent chapter 连接。

目录的标题是从它链接的文档中读出,可以通过特定格式修改。比如:

.. toctree::

intro
All about strings <strings>
datatypes

All about strings 就是新的标题。

目录指令集中可以用glob标志,制定搜索"globbing"功能,匹配选项会被插入 示例:

.. toctree::
:glob:

intro*
recipe/*
*

这个目录将包括以intro开始的文档,以及recipe下面的文档,以及所有的剩余的文档。 (当然,除了包含这个目录树的文件)

另外,所有文档,都必须出现在目录树的某处,否则sphinx会显示一个警告,因为这意味着 这个该文档不能页面导航到达, 使用unused_documents 表示那些文档不build。 exclude_dirs 表示那些目录不构建。

主控文档通过 master_doc 标示,它的目录将是根目录,可以被用于文档的主页。如果 maxdepth选项没有设置,它将显现所有内容的目录。

保留的名字

shpinx保留一些名称供自己使用,用户不能用这些名字创建文档。

这些名字是:

  • genindex, modindex, search
  • 所有以"_"开始的名







2008/12/18 limodou <lim...@gmail.com>

limodou

unread,
Dec 17, 2008, 8:59:16 PM12/17/08
to pyth...@googlegroups.com
2008/12/18 huliuhe <hul...@gmail.com>:

> 网站上有pdf文档。下面的是我个人从里面提取的一些东东。
>
> python, django 等等的 文档,都是用这个做的。
>
>
> sphinx 基础¶
>
> 简介¶
>
> sphinx 是一个用python写的,可以根据restructtxt 构建文档的工具。可以把一系列的
> reStructuredText文件转换为其他格式,而且可以自动生成交叉参照,索引等。
>

你这个就是它的文档的简化版。我想知道如何从开始一步步地去生成sphinx。我看文档中需要一个sphinx-quickstart的处理,这个是必须的吗?生成哪些东西就可以测试了,有没有一个象hello,world的示例?

huliuhe

unread,
Dec 17, 2008, 8:59:48 PM12/17/08
to pyth...@googlegroups.com
不用看太多,前面2,3章 就可以了。后面的好像是扩展用的。

2008/12/18 @@ <ask...@gmail.com>

huliuhe

unread,
Dec 17, 2008, 9:01:27 PM12/17/08
to pyth...@googlegroups.com
我今天写一个, 过会传上来。


2008/12/18 limodou <lim...@gmail.com>

limodou

unread,
Dec 17, 2008, 9:09:12 PM12/17/08
to pyth...@googlegroups.com
2008/12/18 huliuhe <hul...@gmail.com>:
> 我今天写一个, 过会传上来。
>

好啊,期待中。。。

huliuhe

unread,
Dec 17, 2008, 10:14:27 PM12/17/08
to pyth...@googlegroups.com
问下,邮件前面 

[CPyUG:73918]


是怎么加上去的,文档我发到邮件列表了。可好像我发的邮件,都没有

CPyUG



2008/12/18 limodou <lim...@gmail.com>

Samuel Chi

unread,
Dec 17, 2008, 10:23:27 PM12/17/08
to pyth...@googlegroups.com


2008/12/18 huliuhe <hul...@gmail.com>

问下,邮件前面 

[CPyUG:73918]


是怎么加上去的,文档我发到邮件列表了。可好像我发的邮件,都没有

CPyUG

自己发的邮件是看不到的,但是别人可以看到,比如我这里显示的标题就是:
[CPyUG:73918] 多个rst文件合并一个pdf的问题 
Reply all
Reply to author
Forward
0 new messages