Reportlab 无法正确渲染印度文本马拉雅拉姆语

问题描述 投票:0回答:0

我正在尝试使用reportlab生成带有马拉雅拉姆语文本(印度语言)的pdf。

我的代码:

# -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.cidfonts import CIDFont
import reportlab.rl_config

reportlab.rl_config.warnOnMissingFontGlyphs = 1 

v1 = u'മൊബൈലും കേബിളും'
v2 = v1.encode('utf-8').decode('utf-8')
pdfmetrics.registerFont(TTFont('Malayalam', 'Meera.ttf', 'UTF-8'))
c = canvas.Canvas("reportlab-malayalam.pdf") 
c.setFont('Malayalam', 14) 
c.setAuthor("Sree")
c.setTitle("Reportlab Malayalam")
c.drawString(10,800, str(v2))
c.save()

输出附在图中obtained output

  1. 文字中出现一个正方形。
  2. 字符部分(马拉雅拉姆语字符ബൈ)在文本中以不同的顺序出现。

我尝试过使用不同的字体,例如 noto sans malayalam,但结果是相同的。

我期望显示正确,因为当将此文本复制到记事本++中时,它显示正确。就像谷歌文档中那样。

我在这里提到了其他问题,但没有得到比我所做的更多的线索。

我在这里做错了吗?

python pdf pdf-generation reportlab indic
© www.soinside.com 2019 - 2024. All rights reserved.