Как включить отчеты RML для печати китайских символов?
- Убедитесь, что китайские шрифты (SimSun, Simhei, WenQuanYiZhenHei)
- встраивать шрифт в библиотеку и настройку RML или мы можем сказать «зарегистрировать шрифт, который вы хотите использовать в Р»
- Изменить Fontname в вашем RML Report (например: slow_moving_report.rml)
НАЧАТЬ:
в этом случае я хочу использовать SimSun шрифт в моем Slow докладе движущемся
(FYI: Я делаю это в Ubuntu 10.04)
Как есть китайские шрифты?
Вы можете установить вручную или с помощью терминала
• Если вы хотите установить вручную
- Перейти к C: \ WINDOWS \ Fonts в вашей ОС Windows
- шрифт типа Copy вы хотите (. TTF/.ttc)
- Копирование на ОС Ubuntu
- Двойной щелчок на шрифт и установить
• Если вы хотите установить с помощью терминала, вы можете обратиться к этой ссылке: http://xgwang.wordpress.com/2007/11/25/set-up-chinese-fonts-using-microsofts-simsunttf-in-ubuntu-71-gutsy/
После вас есть китайский шрифт в вашей ОС, теперь мы можем зарегистрировать свой шрифт, чтобы сообщить лаборатории Примечание: ваша лаборатория отчет должен быть версии 2.0 выше Вы можете обратиться к этой ссылке: http://forum.openerp.com/forum/topic1943.html Но я делаю это немного по-другому
во-первых, создайте папку с именем «шрифты» в этом пути/USR/Lib/python2.6/dist_packages/ReportLab/ И поставил SIMSUN.TTC в нем
Примечания: место, где ReportLab ищет TTF-файлы можно найти здесь: rl_config.py (вы можете найти этот файл в файловой системе)
Во-вторых, после этого перейти к /usr/share/pyshared/reportlab/lib/styles.py и поместить этот код ниже защиту getSampleStyleSheet(): (это один идентификатор оригинал один)
защиту getSampleStyleSheet_JH() : "" "Возвращает китайский элемент таблицы стилей" "" stylesheet = StyleSheet1()
stylesheet.add(ParagraphStyle(name='Normal',
fontName='Simsun',
fontSize=10,
leading=12)
)
stylesheet.add(ParagraphStyle(name='BodyText',
parent=stylesheet['Normal'],
spaceBefore=6)
)
stylesheet.add(ParagraphStyle(name='Italic',
parent=stylesheet['BodyText'],
fontName = 'Simsun-Italic')
)
stylesheet.add(ParagraphStyle(name='Heading1',
parent=stylesheet['Normal'],
fontName = 'Simsun-Bold',
fontSize=18,
leading=22,
spaceAfter=6),
alias='h1')
stylesheet.add(ParagraphStyle(name='Title',
parent=stylesheet['Normal'],
fontName = 'Simsun-Bold',
fontSize=18,
leading=22,
alignment=TA_CENTER,
spaceAfter=6),
alias='title')
stylesheet.add(ParagraphStyle(name='Heading2',
parent=stylesheet['Normal'],
fontName = 'Simsun-Bold',
fontSize=14,
leading=18,
spaceBefore=12,
spaceAfter=6),
alias='h2')
stylesheet.add(ParagraphStyle(name='Heading3',
parent=stylesheet['Normal'],
fontName = 'Simsun-BoldItalic',
fontSize=12,
leading=14,
spaceBefore=12,
spaceAfter=6),
alias='h3')
stylesheet.add(ParagraphStyle(name='Bullet',
parent=stylesheet['Normal'],
firstLineIndent=0,
spaceBefore=3),
alias='bu')
stylesheet.add(ParagraphStyle(name='Definition',
parent=stylesheet['Normal'],
firstLineIndent=0,
leftIndent=36,
bulletIndent=0,
spaceBefore=6,
bulletFontName='BoldItalic'),
alias='df')
stylesheet.add(ParagraphStyle(name='Code',
parent=stylesheet['Normal'],
fontName='Courier',
fontSize=8,
leading=8.8,
firstLineIndent=0,
leftIndent=36))
В-третьих, перейти в/Opt/openerp61/сервер/OpenERP/отчет/визуализации/rml2pdf/INIT .py И изменить в этом:
из trml2pdf импорта parseString, parseNode
от reportlab.lib.fonts импорта addMapping
из reportlab.pdfbase импортных pdfmetrics
из ReportLab. pdfbase.ttfonts импорт TTFont
из reportlab.pdfbase.cidfonts импорта UnicodeCIDFont, findCMapFile
pdfmetrics.registerFont (TTFont ('SimSun', 'SIMSUN.TTC')) # имя шрифта вы поставите здесь должны точно то же самое с одной вы скопировать в «шрифты» папку на шаге 1
для facename в [ ''] SimSun:
addMapping (facename, 0, 0, facename) #normal
addMapping (facename , 0, 1, facename) #italic
addMapping (facename, 1, 0, facename) #bold
addMapping (facename, 1, 1, facename) #italic и жирный
В-четвертых, перейти в/Opt/openerp61/сервера/OpenERP /report/render/rml2pdf/trml2pdf.py
• Изменить кодировку из «cp1252» в «UTF-8» • Добавьте следующий код:
из reportlab.lib.enums импорта TA_LEFT, TA_RIGHT, TA_CENTER , TA_JUSTIFY из отчета lab.lib.styles импорта getSampleStyleSheet_JH, ParagraphStyle, StyleSheet1
• Заменить все «getSampleStyleSheet» на «getSampleStyleSheet_JH»
Последний шаг перезапустить службу OpenERP ДВАЖДЫ Примечание: если при перезагрузке службы нож, она подскажет из «Start-stop-daemon: warning: не удалось убить 5445: нет такого процесса», вы можете прокомментировать код на шаге 3 и узнать, что ошибка и раскомментировали снова, но не забудьте снова перезапустить службу.