rst2pdf使用(中文及样式设计)

来源:互联网 发布:千牛卖家版mac不能用 编辑:程序博客网 时间:2024/05/01 13:11

官网文档: http://rst2pdf.ralsina.com.ar/handbook.html


.简单介绍

  ubuntu 可直接安装,  其他版本若不提供安装包, 可官网下载源码包, 这里不在赘述.


  基本使用:  rst2pdf    *.rst

  指定风格:  rst2pdf    -s  style *.rst

  导出默认 stylesheet:  rst2pdf    --print-stylesheet   > xx.sheet


.字体修改

  fontsAlias:    stdFont: simkei    stdBold: simhei    stdItalic: Helvetica-Oblique    stdBoldItalic: Helvetica-BoldOblique    stdSans: simkei    stdSansBold: simhei    stdSansItalic: Helvetica-Oblique    stdSansBoldItalic: Helvetica-BoldOblique    stdMono: simkei    stdMonoItalic: Courier-Oblique    stdMonoBold: simsun    stdMonoBoldItalic: Courier-BoldOblique    stdSerif: Times-Roman

  通常默认字体不支持中文, 我们可以修改这些字体名, 如系统上没有, 则安装对应字体

  这样中文显示就不是问题了


.布局设置

 firstTemplate: myPage  # pageTemplates can be accessed with the .. raw:: pdf PageBreak command  pageTemplates:    myPage:        frames: []            [0%, 95%, 33%, 5%]            [65%, 95%, 50%, 5%]            [0%, 90%, 100%, 9.5%]            [0%, 86%, 100%, 7%]                        [0%, 79%, 50%, 10%]            [50%,79%, 50%, 10%]            [0%, 0%, 100%, 80%]    coverPage:        frames: []            [0cm, 0cm, 100%, 100%]        showHeader : false        showFooter : false    emptyPage:        frames: []            [0cm, 0cm, 100%, 100%]        showHeader : false        showFooter : false    oneColumn:        frames: []            [0cm, 0cm, 100%, 100%]        showHeader : true        showFooter : true

  firstTempleta: yourPage .   这个变量用来设置你需要的布局

  关键的是 frames 的设置, 个元素的意思如下:

 [ left position, bottom position, width, height ]
  left 是从左到右的的比例或距离, bottom 是从下到上的比例或距离. 个人觉得写比例比较好


     myPage:        frames: []            [0%, 95%, 33%, 5%]            [65%, 95%, 50%, 5%]            [0%, 90%, 100%, 9.5%]            [0%, 86%, 100%, 7%]                        [0%, 79%, 50%, 10%]            [50%,79%, 50%, 10%]            [0%, 0%, 100%, 80%]

  

  这是我的配置,  目的是实现如下效果


 rst 文件如下:

.. role:: 15sizetext:15sizetext:`xxxxx`:15sizetext:`应聘职位: xxxxxx`------------------------------------------------------------个人信息========= 出生年月: xxxxxxxxx 联系电话: xxxxxxxxxx 教育背景: xxxxxxxxxxxxx 邮箱: xxx@mail.com 博客: http://xxx.com github: https://github.com/xxx个人技能=========  xxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxx  xxxxxxxxxxxxxxxxxxx项目与实践===========- xxxxxxxxxxxxxxxxxxxxxxxxxxx  ::   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|- xxxxxxxxxxxxxxxxxxxxxxxxxx  ::   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  ::   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx自我评价=========   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxxxxxxxxx


    这中布局定义不好的地方就是要根据 rst 文件的内容设置, 字体的大小都会影响显示效果, 不方便. 如果大家有什么好的方法,

   谢谢分享.

.规则设置(.. role:: xxx)

 在styles里书写:

styles:        .......       15sizetext:      parent: bodytext      fontSize: 15

这样就实现了一个将字体设置为15号的规则了, 当然颜色, 背景色 等等 rst2pdf 支持的属性一般都可.


这样使用:

.. role:: 15sizetext:15sizetext:`xxxxx`:15sizetext:`应聘职位: xxxxxx` 

规则也可嵌入到句子内部

xxx :15sizetext: `dadada` xxx

效果如下:


0 0