ReportLab Django не отображает китайские иероглифыPython

Программы на Python
Ответить
Anonymous
 ReportLab Django не отображает китайские иероглифы

Сообщение Anonymous »

У меня возникли трудности с отображением китайских иероглифов в ReportLab. Судя по всему, что я искал, люди говорят, что это, вероятно, проблема со шрифтом, но я использовал много разных шрифтов, и, похоже, они вообще не используются. Китайские иероглифы всегда выглядят как черные квадраты. Ниже приведен пример кода того, что у меня есть.

Код: Выделить всё

# -*- coding: utf8 -*-
from reportlab.lib.pagesizes import letter
from reportlab.pdfbase.ttfonts import TTFont
from io import BytesIO

pdfmetrics.registerFont(TTFont('Arial', 'arial.ttf', 'UTF-8'))

buffer = BytesIO()
doc = SimpleDocTemplate(buffer,
rightMargin=inch*0.5,  # 1/2 Inch
leftMargin=inch*0.5,  # 1/2 Inch
bottomMargin=0,
topMargin=inch*0.375,  # 3/8 Inch
pagesize=letter)
# Get Styles
styles = getSampleStyleSheet()
# Custom Style
styles.add(ParagraphStyle(name='Address', font='Arial', fontSize=8))

elements = []
elements.append(Paragraph(u'6905\u897f\u963f\u79d1\u8857\uff0c\u5927\u53a6\uff03\u5927', styles['Address']))

doc.build(elements)

# Get the value of the BytesIO buffer and write it to the response.
pdf = buffer.getvalue()
buffer.close()
return pdf
Я использую шрифт arial.ttf, который можно найти в моей установке Ubuntu 12.04 в папке шрифтов. Я также пробовал другие шрифты, установленные на этом компьютере, и все они выглядят одинаково, даже цифры, и ни один из китайских иероглифов не представляет собой ничего, кроме черных квадратов.

Я неправильно регистрирую шрифты, если даже цифры в начале печатаются неправильно? Что может быть причиной появления черных квадратов?

Подробнее здесь: https://stackoverflow.com/questions/214 ... characters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»