2010年1月27日 星期三

Python 文件產生方法 - rst2pdf 中文解法

目的: 使用讓 rst2pdf 去產生中文的 PDF 文件,rst2pdf 的功能是將 reStructureText 文件轉換成 PDF 檔
       這份文件是說明如何讓它輸出 有中文的 PDF 檔


1.Q:如何安裝 rst2pdf:
   A: easy_install rst2pdf

2.產生方式
解法1: 讓 rst2pdf 去讀外部的style 檔


 rst2pdf -help 看到  -s 的作法
   -s STYLESHEETS, --stylesheets=STYLESHEETS
       A comma-separated list of custom stylesheets.Default=""
     
指令: rst2pdf -s xxx.style source.txt -o  output.pdf
說明:
1.kaiu 應該是標楷體

2.source.txt 是 reStructureText 且需存成 utf-8 編碼的文件檔
3.
xxx.style 的內容:
{
 "embeddedFonts" : [["kaiu.ttf","kaiu.ttf","kaiu.ttf","kaiu.ttf"]],
  "fontsAlias" : {
    "stdFont": "kaiu",
    "stdBold": "kaiu",
    "stdItalic": "kaiu",
    "stdBoldItalic": "kaiu",
    "stdMono": "kaiu"
    }
}
 

解法2: 修改 style.json 
 如: D:\Python26\Lib\site-packages\rst2pdf-0.12.3-py2.6.egg\rst2pdf\styles\styles.json

修改後內容:
  "embeddedFonts" : [ ["kaiu.ttf","kaiu.ttf","kaiu.ttf","kaiu.ttf"]],
    "stdFont": "kaiu",     
    "stdBold": "kaiu",
    "stdItalic": "kaiu",
    "stdBoldItalic": "kaiu",
    
    "stdSans": "kaiu",
    "stdSansBold": "kaiu",
    "stdSansItalic": "kaiu",
    "stdSansBoldItalic": "kaiu",
    
    "stdMono": "kaiu",
    "stdMonoItalic": "kaiu",
    "stdMonoBold": "kaiu",
    "stdMonoBoldItalic": "kaiu",
    "stdSerif": "kaiu"

修改前內容:
  "embeddedFonts" : [ ],
    "stdFont": "Helvetica",     
    "stdBold": "Helvetica-Bold",
    "stdItalic": "Helvetica-Oblique",
    "stdBoldItalic": "Helvetica-BoldOblique",
    "stdSans": "Helvetica",
    "stdSansBold": "Helvetica-Bold",
    "stdSansItalic": "Helvetica-Oblique",
    "stdSansBoldItalic": "Helvetica-BoldOblique",
    "stdMono": "Courier",
    "stdMonoItalic": "Courier-Oblique",
    "stdMonoBold": "Courier-Bold",
    "stdMonoBoldItalic": "Courier-BoldOblique",
    "stdSerif": "Times-Roman"




3.結論:

a.建議使用 解法 1 產生pdf檔,因為尚未解決 Sphinx 如何產生中文的PDF 檔








沒有留言: