Tiny ERP 中文pdf报表设置
<!-- start content -->
Thank you knerz and vcc on Tiny ERP's official forum to provide us this solution.
感谢Tiny ERP官方网站上的vcc和knerz为我们提供了下面的解决方案
1. 获取中文字体文件 (本例中使用 arialuni.ttf (全称: "Arial Unicode MS"))
2. 复制至 tiny/bin/reportlab/fonts/
它的这个说明是针对reportlab1.x的(如果我记得没错的话),现在我们用的是reportlab2.x,这样你可以把字体文件拷贝到reportlab的目录下,这个目录是在python的安装目录下的site-package>reportlab>font目录。当然你将字体文件放在tiny/bin/reportlab/fonts/下也没有问题,只要用 ln 命令做一个链接到上面所述的目录下就可以了
3. 编辑 tiny/report/render/rml2pdf/trml2pdf.py, 插入以下代码:
encoding = 'UTF-8'
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle, StyleSheet1
def getZhSampleStyleSheet():
"""Returns a chinese stylesheet object"""
stylesheet = StyleSheet1()
stylesheet.add(ParagraphStyle(name='Normal',
fontName='Arial Unicode MS',
fontSize=10,
leading=12)
)
stylesheet.add(ParagraphStyle(name='BodyText',
parent=stylesheet['Normal'],
spaceBefore=6)
)
stylesheet.add(ParagraphStyle(name='Italic',
parent=stylesheet['BodyText'],
fontName = 'Arial Unicode MS')
)
stylesheet.add(ParagraphStyle(name='Heading1',
parent=stylesheet['Normal'],
fontName = 'Arial Unicode MS',
fontSize=18,
leading=22,
spaceAfter=6),
alias='h1')
stylesheet.add(ParagraphStyle(name='Title',
parent=stylesheet['Normal'],
fontName = 'Arial Unicode MS',
fontSize=18,
leading=22,
alignment=TA_CENTER,
spaceAfter=6),
alias='title')
stylesheet.add(ParagraphStyle(name='Heading2',
parent=stylesheet['Normal'],
fontName = 'Arial Unicode MS',
fontSize=14,
leading=18,
spaceBefore=12,
spaceAfter=6),
alias='h2')
stylesheet.add(ParagraphStyle(name='Heading3',
parent=stylesheet['Normal'],
fontName = 'Arial Unicode MS',
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='Arial Unicode MS'),
alias='df')
stylesheet.add(ParagraphStyle(name='Code',
parent=stylesheet['Normal'],
fontName='Arial Unicode MS',
fontSize=8,
leading=8.8,
firstLineIndent=0,
leftIndent=36))
return stylesheet
4. 在同样的文件中搜索 reportlab.lib.styles.getSampleStyleSheet() 用 getZhSampleStyleSheet() 替换(共六处)
5. 编辑 tiny/report/render/rml2pdf/__init__.py, 插入以下代码:
from reportlab.lib.fonts import addMapping
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.cidfonts import CIDFont, findCMapFile
from reportlab.lib.fonts import addMapping
pdfmetrics.registerFont(TTFont('Arial Unicode MS','arialuni.ttf'))
for facename in ['Arial Unicode MS']:
addMapping(facename, 0, 0, facename) #normal
addMapping(facename, 0, 1, facename) #italic
addMapping(facename, 1, 0, facename) #bold
addMapping(facename, 1, 1, facename) #italic and bold
6.回到tinyerp的安装目录。使用以下命令使所有的报表使用Arial Unicode MS 字体:
find ./bin/addons -name "*.rml" | xargs grep -l 'Times-Roman' | xargs sed -i 's/Times-Roman/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Times-BoldItalic' | xargs sed -i 's/Times-BoldItalic/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Times-Bold' | xargs sed -i 's/Times-Bold/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Times-Italic' | xargs sed -i 's/Times-Italic/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Helvetica-BoldOblique' | xargs sed -i 's/Helvetica-BoldOblique/Arial Unicode MS/g';
find ./bin/addons -name "*.xsl" | xargs grep -l 'Helvetica-BoldOblique' | xargs sed -i 's/Helvetica-BoldOblique/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Helvetica-Bold' | xargs sed -i 's/Helvetica-Bold/Arial Unicode MS/g';
find ./bin/addons -name "*.xsl" | xargs grep -l 'Helvetica-Bold' | xargs sed -i 's/Helvetica-Bold/Arial Unicode MS/g';
find ./bin/addons -name "*.xsl" | xargs grep -l 'Helvetica-Oblique' | xargs sed -i 's/Helvetica-Oblique/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Helvetica' | xargs sed -i 's/Helvetica/Arial Unicode MS/g';
find ./bin/addons -name "*.xsl" | xargs grep -l 'Helvetica' | xargs sed -i 's/Helvetica/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Courier-Bold' | xargs sed -i 's/Courier-Bold/Arial Unicode MS/g';
find ./bin/addons -name "*.xsl" | xargs grep -l 'Courier' | xargs sed -i 's/Courier/Arial Unicode MS/g';
find ./bin/addons -name "*.rml" | xargs grep -l 'Courier' | xargs sed -i 's/Courier/Arial Unicode MS/g'
搞定!
分享到:
相关推荐
友善之臂tiny6410配套资料, 包括PDF文档和SD-flash.exe烧写软件. 01- Tiny6410硬件手册.pdf 02- Tiny6410功能测试指南.pdf 03- Tiny6410刷机指南.pdf 04- Tiny6410 Linux开发指南.pdf 05- Tiny6410 Android开发指南....
此文档为友善之臂Tiny6410官方文档,其中包含: 01-Tiny6410硬件手册 02-Tiny6410功能测试指南 03-Tiny6410刷机指南 04-Tiny6410 Linux开发指南 05-Tiny6410 Android开发指南 06-Tiny6410WinCE开发指南 07-...
根据提供的文档信息,我们可以总结出以下关于 ATtiny13 微控制器的重要知识点: ### 一、产品特性 #### 1. 高性能、低功耗的8位 AVR® 微处理器 - **高级 RISC 结构**:拥有高度优化的指令集,包括120条指令,其中...
完善了Linux 系统,升级包括: - 增加 支持USB 3G 上网卡,支持上百种3G上网卡,如目前应用最多的华为E261等 - 增加支持USB 摄像头,首选罗技720p高清摄像头C270,其他UVC摄像头可自行测试。 - 增加经过UI优化的 ...
实际上是安装的虚拟打印机 使用时直接点打印选择该打印机就可以生成PDF文件 绝对没有水印 超级好用 小巧
### TinyXML指南知识点详解 #### 一、TinyXML概述 TinyXML是一款专为C++设计的轻量级XML解析库,其主要特点是简单易用、体积小且易于集成到其他项目中。它能够将XML文档解析成一个可以浏览、修改及保存的文档对象...
友善之臂tiny6410配套资料, 包括PDF文档和SD-flash.exe烧写软件. 01- Tiny6410硬件手册.pdf 02- Tiny6410功能测试指南.pdf 03- Tiny6410刷机指南.pdf 04- Tiny6410 Linux开发指南.pdf 05- Tiny6410 Android开发指南....
此外,Tiny Core Linux 也支持多种语言,包括简体中文、英文、法语、德语等。 Tiny Core Linux 是一个非常小巧的桌面环境,非常适合老旧的计算机或嵌入式设备,同时也提供了基本的桌面功能和简洁的用户界面。 知识...
RTX51 Tiny 官方文档(中文版) RTX51 Tiny 是一个实时操作系统,允许用户创建可以同时执行多个功能或任务的应用程序。在嵌入式应用中,这往往是必须的。RTX51 Tiny 是一个功能强大且简单易用的 RTOS,适用于所有 ...
《TinyOS 中文学习指南》是一份针对 TinyOS 1.x 的教程,旨在帮助学习者理解和掌握这个开源操作系统的核心概念和技术。TinyOS 是一个专为传感器网络设计的微控制器操作系统,它采用模块化的设计,强调低功耗和高效能...
**Tiny PDF虚拟打印机详解** 在数字化办公环境中,PDF(Portable Document Format)文件因其跨平台、非编辑性以及高质量的文档保留特性,已经成为一种普遍使用的文件格式。为了方便用户将各种文档转换为PDF,"Tiny ...
### TinyOS中文手册知识点概述 #### 一、TinyOS安装指南 TinyOS提供两种安装方法:自动安装与全手动安装。自动安装适用于Windows平台,通过TinyOS安装向导完成,可选择“完全”安装或“自定义”安装,后者允许用户...
### TinyOS中文手册知识点概述 #### 一、TinyOS安装与使用 TinyOS是一种专为无线传感器网络设计的操作系统,其轻量级架构使得它能在资源受限的微控制器上高效运行。本章节将深入探讨TinyOS的安装流程,以及如何在...
TinyXml中文使用指南 TinyXml是一个轻量级的XML解析库,主要用C++编写,设计用于方便地读写XML文档。它提供了简单易用的API,使得开发者能够轻松地在程序中处理XML数据。本指南将详细介绍TinyXml的主要类和它们的...
能打印PDF文档。 这是我收藏已久的。好东西大家一起用。大家请放心下载,只要是我传上去的都是我使用的,好用的,无毒的。不过大家要支持我噢。这样我才会有更多的激情上传更多更好的软件,教程等等。
TinyPDF是一款小巧免费的PDF虚拟打印机,本程序是TinyPDF的绿化工具, 弥补了官方的安装程序卸载不干净的问题,实现了一键安装和卸载。用时就安装,不用就卸载,不留一点LJ。本程序带了英文版和汉化版的TinyPDF,...