reportlab 中文問題[已解決]

問題

用reportlab生成pdf文件,碰到中文就會變成黑色的小方塊,如下圖。


中文變成了黑色方塊

解決方法

1.下載中文字體SimSun.ttf
2.把下載下來的字體放到/Library/Python/2.7/site-packages/reportlab/fonts文件夾下。(文件夾根據(jù)自己安裝的reportlab的路徑來)
3.注冊字體并使用

from reportlab.platypus import SimpleDocTemplate, Image, Paragraph
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

pdfmetrics.registerFont(TTFont('SimSun', 'SimSun.ttf'))  #注冊字體

styles = getSampleStyleSheet()
styles.add(ParagraphStyle(fontName='SimSun', name='Song', leading=20, fontSize=12))  #自己增加新注冊的字體

Paragraph(describe, styles['Song']),  #使用新字體
中文顯示正常

還有文字換行問題,暫時用了下面的方式

Paragraph(u'<br/>%s<br/>' % describe, styles['Song'])

參考:
https://stackoverflow.com/questions/30328945/setfont-in-reportlab-django

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 模塊間聯(lián)系越多,其耦合性越強,同時表明其獨立性越差( 降低耦合性,可以提高其獨立性)。軟件設計中通常用耦合度和內聚...
    riverstation閱讀 2,212評論 0 8
  • Matplotlib是Python的一個2D繪圖庫,許多小伙伴第一次使用圖表繪制時,會發(fā)現(xiàn)中文亂碼或者小方塊的情況...
    Mr_喵閱讀 2,008評論 0 1
  • 有時會把時間消磨在白日夢上。假如沒有碰見它們,我是誰?我會在哪里?是壯懷凌霄,獨行千山?還是舍我紅塵,吟我經文?人...
    道安瀾閱讀 334評論 0 0
  • 一大早還沒有睡醒,爸爸就在敲窗戶,叫我們給他開門,我揉著朦朧的睡眼,一看時間,才剛剛5點而已,他就已經早早出門開始...
    笑薇讀書閱讀 1,240評論 4 12
  • 建立和客戶之間的信任吧,這個人與人溝通之間的東西,也不用刻意的去操作,做好自己的工作,用心給客戶工作,用心和客戶溝...
    f1885e183ef3閱讀 478評論 0 0

友情鏈接更多精彩內容