【问题标题】:Telugu (Unicode) font not rendering correctly in pyfpdf泰卢固语(Unicode)字体在 pyfpdf 中未正确呈现
【发布时间】:2019-06-19 13:02:56
【问题描述】:

我正在尝试使用 pyfpdf 将泰卢固语文本呈现为 pdf。 问题在于fpdf 中的字体再现。 可能是什么问题? 我使用的代码是:

#!/usr/bin/python
# -*- coding: utf8 -*-
from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.add_font('lakkireddy', '', 'LakkiReddy.ttf', uni=True)
pdf.set_font('lakkireddy','', 16)
pdf.cell(40,10,u'హలో ప్రపంచమా!')
pdf.output('testfpdf.pdf','F')`

预期的输出是:

但实际输出是损坏的文本:

可能是什么问题,是字体,是编码还是字体渲染引擎? 我可以定义使用哪个字体渲染引擎吗?

【问题讨论】:

  • 您确定您尝试使用的字体支持 16 号字体吗?如果您尝试使用较小的字体(例如 12)会发生什么情况?
  • ఏమైనా సమాధానం దొరికిందా?你找到解决办法了吗?
  • 可能与此有关。当然,我们需要传递特殊指令来处理复合 unicode 文本。 stackoverflow.com/questions/21188046/…

标签: python pdf fpdf font-rendering


【解决方案1】:

我对 fpdf 不熟悉,但似乎 fpdf 不支持对复杂脚本进行适当的文本整形。字形形状会根据字符串中的字形位置及其相邻字形而变化,但 fpdf 默认情况下似乎不进行这种处理。

您必须检查 fpdf 中是否有为复杂脚本指定此类处理的选项。

【讨论】:

  • +1 我在 matplotlib 中遇到了类似的问题,我确信渲染器没有考虑相邻的字母。技术名称“字形”将为我找到解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-01-21
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 2023-03-21
相关资源
最近更新 更多