Magento PDF发票,支持中文,以及修改的办法.

 

如果让magento的PDF发票支持中文.Magento生成PDF发票.使用的是zend framework的zend_pdf类.

下面是一个简单的,使用zend framework生成pdf文件的用法.[code]<?php
...
// 创建一个新的PDF文档.
$pdf1 = new Zend_Pdf();

// 加载一个现有的PDF文件.
$pdf2 = Zend_Pdf::load($fileName);

// 从字符串加载并生成PDF文件.
$pdf3 = Zend_Pdf::parse($pdfString);[/code]okay..非常简单吧..
我们先来看如果让magento的PDF支持中文.
首先,我们要明白.Magento为什么不支持中文.. 其实zendcart还有joomla都存在这个问题.
是因为这些程序中,使用的文字库并不支持中文.so,我们只需要替换掉就可以了.

此类文件在这里:app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php
找到如下的代码:[code] protected function _setFontRegular($object, $size = 7)

{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf');
$object->setFont($font, $size);
return $font;
}

protected function _setFontBold($object, $size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Bd-2.8.1.ttf');
$object->setFont($font, $size);
return $font;
}

protected function _setFontItalic($object, $size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_It-2.8.2.ttf');
$object->setFont($font, $size);
return $font;

}[/code]okay..看到这里大家就知道怎么修改了吧..
只需要把字体的库文件替换一下就ok.

.说一下要实现的效果.
因为默认的pdf上,是没有store的名字或者域名的.
客户想在pdf上加上本网站的域名.这样好做区分.

先说个简单的办法.

我们打开:app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php.然后把这段代码加到[code]$page->drawText(Mage::helper('sales')->__('Website : ') . "你网站的域名", 400, 780, 'UTF-8');[/code][code]$page->drawText(Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId(), 35, 780, 'UTF-8');[/code]的下面.
就可以了..
当然,如果觉得位置不够好.只需要修改一下坐标$page->drawText(Mage::helper('sales')->__('Website : ') . "你网站的域名", [color=Red]400[/color], [color=Red]780[/color], 'UTF-8');

http://www.zencart-cn.com/zencart-cn-news/article-a-5689.html

Magento PDF发票,支持中文,以及修改的办法的更多相关文章

  1. PHP生成PDF完美支持中文,解决TCPDF乱码

    PHP生成PDF完美支持中文,解决TCPDF乱码 2011-09-26 09:04 418人阅读 评论(0) 收藏 举报 phpfontsheaderttfxhtml文档 PHP生成PDF完美支持中文 ...

  2. tcpdf导出pdf数据支持中文的解决方案

    步骤如下:1.确保你测试tcpdf能正常输出英文内容的pdf2.测试输入中文内容后显示是?的乱码或者空白分析原因,是因为我们输入的中文,tcpdf字体库并不支持,因此乱码或者空白显示 添加一个合适的字 ...

  3. php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)

    dompdf\lib\fonts\dompdf_font_family_cache.php记住这个文件里面存放的是字体生成的缓存,迁移时如果覆盖了这个文件会导致乱码而且很难找到出错的地方,相信我... ...

  4. [转载]tomcat的配置文件server.xml不支持中文注释的解决办法

    原文链接:http://tjmljw.iteye.com/blog/1500370 启动tomcat失败,控制台一闪而过,打开catalina的log发现错误指向了conf/server.xml,报错 ...

  5. Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法

    前言 我在实验进入linux系统启动xwindow server而不启动KDE GNOME等桌面系统时遇到的问题.只启动x server而不启动桌面系统,在xserver之上运行一个全屏的图形界面程序 ...

  6. 让pandoc输出pdf时支持中文

    主机环境为:Ubuntu 12.04 LTS.对于RH系列,yum安装包的名称可能会有不同,不过yum联想能力比较强,应该不是问题. 安装pandoc,安装tex-live sudo apt-get ...

  7. Jupyter Notebook 导出PDF与Latex中文支持

    Jupyter Notebook 最近搞机器学习用到了Jupyter Notebook. 作为一个实时记事本,有时需要将内容导出为PDF. 但是,Jupyter Notebook自带的File -&g ...

  8. C#Qrcode生成二维码支持中文,带图片,带文字

    C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...

  9. Servlet 下载文件及支持中文文件名

    Sevlet 下载pdf文件 支持中文文件名 package html2pdf.controller; import java.io.File; import java.io.FileInputStr ...

随机推荐

  1. Edmond_Karp算法

    核心思想:通过bfs不断在网络中寻找最短的增广路,从而求得最大流.时间复杂度O(VE^) 算法模板: int Edmond_Karp(int s,int t) { ; memset(flow,,siz ...

  2. clumsy 0.1 测试工具(延迟\掉包\节流\重发\乱序\篡改)

    clumsy : http://jagt.github.io/clumsy/可以模拟以下几种场景: 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况. 掉包(Drop),随机丢 ...

  3. WIN7启动WIFI

    启动虚拟无线AP netsh wlan set hostednetwork mode=allow ssid=WIFI_NAME key="abcdefgh" netsh wlan ...

  4. ckeditor的详细配置

    CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.con ...

  5. shiyan2

    <?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http:// ...

  6. Everything文件名实时搜索||解决局域网文件共享问题

    内容概要:Everything中文版下载地址及使用.用Everything轻松解决局域网文件共享问题.Everything语言设置问题 另:Everything只支持NTFS格式的磁盘(工作原理的缘故 ...

  7. 对于默认 Windows NT 安装的 SID 值

    https://support.microsoft.com/en-us/kb/163846/zh-cn

  8. Robocopy

    用法: http://technet.microsoft.com/zh-cn/library/cc733145%28v=ws.10%29.aspx   图形化工具: http://sourceforg ...

  9. java命令行参数

    命令行参数就是main方法里面的参数String[] args他就是一个数组,args只是数据类型的一个名称,就是一个数组的变量,名称无所谓,类型没变就行了.这个就是程序的入口点.如图7.4所示: 图 ...

  10. Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割

    要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如: [root@localhost ~]# da ...