Magento订单打印(pdf格式)

Magento自身包含有:打印发票单,打印装箱单,打印退款单。这些都是基于西方国家的习惯来布置的。公司有个需求就是打印订单的四联单,PDF格式的,要一周内完成。刚接到这个任务时,觉得头大,因为对于PHP如何生成PDF文件,以及Magento的打印系统,都还是一无所知。另外这次是中文打印,这和Magento内置的英文订单打印有区别。

接下来就是分析代码。对于第一个问题:PHP如何生成PDF文件,方法就是利用Zend_Pdf库来实现;对于Zend_Pdf中文乱码的问题,也通过可爱的Google找到了解决办法;另外通过代码分析也熟悉了Magento内置的打印系统。由于经常开会和有其他的琐碎任务,又拖了几周后才开始动手编程,花了大概五天就完成了。先晒晒成熟的果实:

遇到的几个问题:

一、Magento打印中文PDF订单乱码。这个需要加载中文字体来解决。我采用的是楷体(simkai.ttf)和微软雅黑粗(msyhbd.ttf)字体,本来是想采用宋体的,发现Zend_Pdf对宋体的支持有点问题。微软雅黑字体也比较好看,就用她了。注:simkai.ttf和msyhbd.ttf在c:/windows/fonts/目录下可以找到。下面是建立中文字的代码:

1 $fontyah = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() .‘/lib/ZhFont/msyhbd.ttf‘);
2 $fontkai = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() .‘/lib/ZhFont/simkai.ttf‘);

二、绘制订单左上角公司Logo。这个需要用到Zend_Pdf_Image。瞧代码:

1 $logofile = Mage::getBaseDir() .‘/skin/frontend/default/default/images/print_logo.jpg‘;
2  
3 if ($logofile) {
4     if (is_file($logofile)) {
5         $image = Zend_Pdf_Image::imageWithPath($image);
6         $page->drawImage($image, 25, 800, 125, 825);
7     }
8 }

三、绘制条形码。代码是在网上找到,稍加修改的。原理是利用PHP GD生成条形码图片,然后通过Zend drawImage()绘制于订单上。代码比较复杂,略。

四、获取制单员工姓名。

1 $user = Mage::getSingleton(‘admin/session‘)->getUser();
2 $user_name $user->getLastname() . $user->getFirstname();

五、获取Magento订单支付方式,也比较复杂。调试了很久,才得到下面的代码,可能有点问题,但大部分时候能正常工作:

01 $paymentInfo = Mage::helper(‘payment‘)->getInfoBlock($order->getPayment())
02     ->setIsSecureMode(true)
03     ->toPdf();
04  
05 $payment explode(‘{{pdf_row_separator}}‘$paymentInfo);
06  
07 foreach ($payment as $key=>$value){
08     if (strip_tags(trim($value))==‘‘){
09         unset($payment[$key]);
10     }
11 }
12  
13 reset($payment);
14  
15 $payment = trim($payment[0]);

除去这几个问题有点难度,其他的都相对容易解决。功能完成后,制单客服MM的工作大大减轻。以前是手工在word模板上制作的,难免会出错。而且复制粘贴,特单调机械无聊,而且每人每天累的头晕只能制一百张单左右。现在几分钟之内上千张单立马OK。后来客服MM见到我就笑嘻嘻的。

http://blog.sina.com.cn/s/blog_4066b17f01014vlz.html

时间: 2024-07-30 10:18:40

Magento订单打印(pdf格式)的相关文章

mac下如何将图片转换成PDF格式?

图片的格式有很多中,PDF也是经常使用的一种,那么如何将图片转换成PDF格式?除了可以通过软件进行转换格式之外,通过电脑的基本操作也是可以实现的!小编总结了具体的操作步骤,简单的计步就可以将您手中的图片转换成PDF格式,下面就和小编一起来看看具体是如何操作的吧! 将图片转换成PDF格式步骤: 第一步:选中你所有需要的图片 第二步:在编辑选项里面选择"全选" 第三步:选择"打印" 第四步:选择"储存为PDF

直接利用浏览器保存网页为PDF格式的方法

随着电子阅读器的广泛应用,PDF这种文件格式以其阅读方便.成像质量高等优点,越来越被大家所喜好.网络上介绍了很多可以将文档转存为PDF的软件或者方法,例如福晰PDF.Office Word等等,这里要跟大家分享一下,如果利用Chrome浏览器的打印功能在不安装扩展程序的情况下直接将我们喜爱的网页内容保存成PDF格式文件的方法. 工具/原料 · 需要下载最新版的Google Chrome,可以去Google官网直接下载. 方法/步骤 1. 浏览喜爱的网页,比如这里有一位专家的课程主页. 2. 在任

在Linux上如何将文本文件转换成PDF格式

当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照下面的两步. 准备工作 首先你要安装两个需要的包. 在 Debian.Ubuntu 或者 Linux Mint上: $ sudo apt-get install enscript ghostscript 在 Fedora.CentOS/RHEL上: $ sudo yum install enscri

将文档从pdf格式转成word

作为网络上传送文件公认的格式,PDF有很多的优势,用户可以在任何电脑上浏览或是打印PDF文件,而且文件转换成PDF后,可以方便的在网络上传输以及快速的显示页面.PDF的文件内容与印刷品一致,降低其他设计文件转换成印刷用的格式会有损坏风险.完整的保留了文件原有的格式,颜色,字体和图像,方便于印刷前校对效果是否有误.也正因为它的优点,是PDF文件的编辑变成困难,人们在网络上下载的资料,总是希望变成可编辑的形式,可以这样愿望却似乎不太实现. 将PDF转换成Word是一个比较大众的方式,Word是我们常

Java打印pdf方法的记录

[java] view plaincopy public class PrintDemo { public static void main(String[] args) { JFileChooser fileChooser = new JFileChooser(); // 创建打印作业 int state = fileChooser.showOpenDialog(null); if (state == JFileChooser.APPROVE_OPTION) { File file = fil

怎么修改PDF文件、PDF格式文件怎么修改!

PDF格式文件虽然使用起来是非常的方便简单,但是这种文件却非常的难编辑,这是为什么呢.原因是PDF文件的格式比较特殊,编辑这种文件需要使用到专业的软件,下面我们就一起来学习了解一下怎么修改PDF这种文件吧! 迅捷PDF编辑器可以对PDF文件进行图片替换.文字修改.绘画标注.页面旋转.输出与打印等.是PDF编辑器果较好的一款PDF编辑器工具,并且安装运行不需要繁琐的设置过程. 1.网上搜索,找到相关资源下载迅捷pdf编辑器,安装后打开至主界面. 2.通过点击栏目上方工具栏中的"文件-打开"

ppt转换成pdf格式转换器怎么使用

ppt转换成pdf格式转换器怎么使用临近期末考试之时,各科老师都会将自己制作好的课件分发给大家,粗略一看每张文稿合起来少说也有几千张.一张一张翻阅起来太慢了,倘若将之转入pdf中,借助pdf良好的视觉效果,复习起来也就显得方便很多,因而想寻找一款ppt转换成pdf转换器,把ppt幻灯片转化为pdf文档,包括文本框里的内容.图表.照片. 当前迅捷ppt转换成pdf转换器使用和下载人数超过200000万人,覆盖各个省市,支持多个文档之间的相互转换. 功能详情: 它是一款功能强大好用的ppt转pdf软

关于这两天研究Java打印pdf方法的记录

这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例如以下: public class PrintDemo { public static void main(String[] args) { JFileChooser fileChooser = new JFileChooser(); // 创建打印作业 int state = fileChoose

用PDF虚拟打印机怎么转换成pdf格式

我们在办公中经常要这里一些文件,而且要将他打印成pdf文件的格式,这时候我们就要用到虚拟打印机了,那么用PDF虚拟打印机怎么转换成pdf格式呢? 下面小编就教大家转换成pdf格式的方法,具体步骤如下. 1.首先我们需要下载一个迅捷PDF虚拟打印机,在电脑上使用,如果没有可以点击(http://dayinji.xjpdf.com/)直接进行下载安装. 2.当我们安装好之后,打开软件,点击界面的"配置设定"选项,对软件的配置设定进行设置. 3.打开右侧的配置设定之后,点击左侧"保