美文网首页
reportlab 中文问题[已解决]

reportlab 中文问题[已解决]

作者: lilith买买买 | 来源:发表于2018-08-22 15:22 被阅读763次

    问题

    用reportlab生成pdf文件,碰到中文就会变成黑色的小方块,如下图。


    中文变成了黑色方块

    解决方法

    1.下载中文字体SimSun.ttf
    2.把下载下来的字体放到/Library/Python/2.7/site-packages/reportlab/fonts文件夹下。(文件夹根据自己安装的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

    相关文章

      网友评论

          本文标题:reportlab 中文问题[已解决]

          本文链接:https://www.haomeiwen.com/subject/fhhyiftx.html