TinyERP linux下中文打印问题
-
linux下中文打印问题还没解决,谁给帮帮忙,参看了官方论坛,也没弄明白。
问题一:2. copy it to the folder tiny/bin/reportlab/fonts/ 我的系统里没有这个目录(自己建了一个)
问题二:find ./bin/addons -name "*.rml" | xargs grep -l 'Times-Roman' | xargs sed -i 's/Times-Roman/Arial Unicode MS/g';.........................这些 命令被执行后返回的提示说:没有输入文件。参见: tinyerp.org/forum/topic1943.html
-
解答一:它的这个说明是针对reportlab1.x的(如果我记得没错的话),现在我们用的是reportlab2.x,这样你可以把字体文件拷贝到reportlab的目录下,这个目录是在python的安装目录下的site-package>reportlab>font目录。当然你将字体文件放在tiny/bin/reportlab/fonts/下也没有问题,只要用 ln 命令做一个链接到上面所述的目录下就可以了。还有一个办法就是将字体文件拷贝到linux的字体目录下,具体可以用google查一下。
另:要检查python的安装目录,可以用的名令有:type, which, whereis, 比如:type python
解答二:要理解这行命令的意思是什么。首先用find命令找出以rml结尾的所有文件,并将这些找到的文件作为grep的输入,用grep命令找到所有这些文件中使用Times-Roman字体的地方,然后用sed的替换命令将所有Times-Roman替换为Arial Unicode MS。这样就完成了对这些字体的替换工作。 我注意到这些命令行中好象有一条到两条确实会出现你说的情况,那是因为命令没有找到相应的文件或在文件中没有找到相应的字体,只要你的命令没输入错误,这个也很正常。
最后要说明一下这种替换report所使用的文件的字体的办法对解决中文pdfreport并不彻底。因为如果你安装了新的模块,而新的模块中的report中的字体又是用西文字体定义的,那么你又要进行这样的手工替换。这个在我们发布的V0.33版本中也同样存在这样的问题,我们只是替换了现存的字体文件。
在未来发布的版本里,我会制作一个中文unicode pdfreport的模块,这样无论你导入多少新的pdf report都能支持中文unicode。这样的模块针对西方文字的已经有了,遗憾的是还不能支持中文。我会加尽快加以改进以求完美支持中文。
[[i] 本帖最后由 digitalsatori 于 2008-1-13 13:14 编辑 [/i]]
-
用如下命令替换成功,可惜打印还是不灵。
还差什么?[code]find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-Roman | xargs sed -i s/Times-Roman/SimSun/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-BoldItalic | xargs sed -i s/Times-BoldItalic/SimSun/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-Bold | xargs sed -i s/Times-Bold/SimSun/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-Italic | xargs sed -i s/Times-Italic/SimSun/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Helvetica-BoldOblique | xargs sed -i s/Helvetica-BoldOblique/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica-BoldOblique | xargs sed -i s/Helvetica-BoldOblique/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Helvetica-Bold | xargs sed -i s/Helvetica-Bold/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica-Bold | xargs sed -i s/Helvetica-Bold/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica-Oblique | xargs sed -i s/Helvetica-Oblique/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Helvetica | xargs sed -i s/Helvetica/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica | xargs sed -i s/Helvetica/SimHei/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Courier-Bold | xargs sed -i s/Courier-Bold/SimYou/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Courier | xargs sed -i s/Courier/SimYou/g;
find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Courier | xargs sed -i s/Courier/SimYou/g ;[/code]init.py文件已经改成这样
[code]from trml2pdf import parseString
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 addMappingpdfmetrics.registerFont(TTFont('simsun','simsun.ttc'))
for facename in ['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 and bold [/code][[i] 本帖最后由 ooop 于 2008-1-16 17:27 编辑 [/i]]
-
参照wiki里的说明修改trml2pdf.py文件