Китайский шрифт в Pentaho Report Desginer Ubuntu

Привет всем, я хочу спросить о китайских шрифтах в дизайнере отчетов Pentaho.

сценарий выглядит следующим образом: первый сценарий: я использую шрифт WenQuanYi Zen Hei (китайский шрифт) в своем отчете - при предварительном просмотре печати он работает нормально (появляется китайский иероглиф) - когда я печатаю PDF, он тоже работает

во втором сценарии я использую шрифт Simsun (китайский шрифт) в своем отчете - при предварительном просмотре печати он работает нормально (появляется китайский иероглиф) - когда я печатаю PDF, он не работает (китайский иероглиф вообще не отображается)

  • к вашему сведению, я использую Ubuntu 10.04, и шрифт WenQuan уже там, а шрифт simsun — это шрифт, который я установил вручную в свою ОС Ubuntu.

Кто-нибудь может мне помочь? Должен ли я вставлять шрифт в пентахо или что-то в этом роде?


person jenny.huang    schedule 18.09.2013    source источник


Ответы (1)


Как включить отчеты RML, чтобы они могли печатать китайские иероглифы?

  1. Убедитесь, что у вас установлены китайские шрифты (Simsun, Simhei, WenQuanYiZhenHei)
  2. Вставьте свой шрифт в библиотеку и настройки RML, или мы можем сказать «зарегистрируйте шрифт, который вы хотите использовать в RML».
  3. Измените имя шрифта в отчете RML (например, slow_moving_report.rml)

ДАВАЙТЕ НАЧНЕМ :

В этом случае я хочу использовать шрифт Simsun в своем отчете о медленном движении.

(К вашему сведению: я делаю это в Ubuntu 10.04)

Как сделать китайские шрифты?

Вы можете установить вручную или через терминал

• Если вы хотите установить вручную

  1. Перейдите в папку C:\WINDOWS\Fonts в вашей ОС Windows.
  2. Скопируйте тип шрифта, который вы хотите (.ttf / .ttc)
  3. Скопируйте в свою ОС Ubuntu
  4. Дважды щелкните шрифт и установите

• Если вы хотите установить через терминал, вы можете перейти по этой ссылке: 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 Но я делаю это немного по-другому

Сначала создайте папку с именем «fonts» по этому пути /usr/lib/python2.6/dist_packages/reportlab/ и поместите в нее SIMSUN.TTC.

Примечание: место, где reportlab ищет TTF-файлы, можно найти здесь: rl_config.py (вы можете найти файл в вашей файловой системе)

Во-вторых, после этого перейдите в /usr/share/pyshared/reportlab/lib/styles.py и поместите этот код ниже def getSampleStyleSheet(): (этот идентификатор исходный)

def 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/server/openerp/report/render/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')) # имя шрифта, которое вы указываете здесь, должно точно совпадать с тем, которое вы копируете в папку «fonts» на шаге 1

для имени в ['SimSun']:

addMapping(имя лица, 0, 0, имя лица) #normal

addMapping(имя лица, 0, 1, имя лица) #italic

addMapping(имя лица, 1, 0, имя лица) #жирный

addMapping(facename, 1, 1, facename) #курсив и полужирный

Далее перейдите в /opt/openerp61/server/openerp/report/render/rml2pdf/trml2pdf.py

• Измените кодировку с «cp1252» на «UTF-8» • Добавьте следующий код:

из reportlab.lib.enums импортировать TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY из reportlab.lib.styles импортировать getSampleStyleSheet_JH, ParagraphStyle, StyleSheet1

• Замените все «getSampleStyleSheet» на «getSampleStyleSheet_JH».

Последний шаг: перезапустите службу openerp ДВАЖДЫ. Примечание. Если при перезапуске службы открывателя появляется сообщение «start-stop-daemon: warning: failed to kill 5445: No such process», вы можете прокомментировать код на шаге 3 и узнать что за ошибка, и снова раскомментируйте, но не забудьте снова перезапустить службу

person jenny.huang    schedule 19.09.2013