Я сталкиваюсь с некоторыми проблемами, связанными с Unicode, при создании отчетов PDF с использованием Geraldo и ReportLab.
Когда строки Unicode, содержащие азиатские символы, передаются в отчет, они отображаются в выходном PDF-файле в виде черных ящиков. Этот пример (http://dl.dropbox.com/u/2627296/report.pdf) был создан с использованием следующего кода:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from geraldo import Report, ReportBand, ObjectValue
from geraldo.generators import PDFGenerator
class UnicodeReport(Report):
title = 'Report'
class band_detail(ReportBand):
elements = [ObjectValue(attribute_name='name')]
if __name__ == '__main__':
objects = [{'name': u'한국어/조선말'}, {'name': u'汉语/漢語'}, {'name': u'オナカップ'}]
rpt = UnicodeReport(queryset=objects)
rpt.generate_by(PDFGenerator, filename='/tmp/report.pdf')
Я использую Python 2.7.1, Geraldo 0.4.14 и ReportLab 2.5. Система Ubuntu 11.04 64-разрядная. Файл .oy также имеет кодировку UTF-8. Черные ящики видны при просмотре PDF в Document Viewer 2.32.0, Okular 0.12.2 и Adobe Reader 9.
Любая помощь очень ценится, спасибо.