Submitted by gouki on 2010, June 9, 10:30 AM
手册中介绍PHP生成PDF用的是fpdf,网上也有一些代码其于Fpdf的看起来好象都不错,但是前提是有fpdf。。因此后来都放弃了。
这一个php class我没有试过,但是看上去好象不错,因为:1开源2原生PHP,不用组件(听说,没试过。)主要是看它可以直接把网页生成PDF,因为他支持html,xhtml,css。所以感觉不错
TCPDF is an Open Source PHP class for generating PDF documents.
TCPDF project was started in 2002 and now it is freely used all over the world by millions of people. TCPDF is a Free Libre Open Source Software (FLOSS).
官方的说明也很详细:
Main Features:
- no external libraries are required for the basic functions;(看来也只是针对基本功能,不过我想应该够了。)
- all ISO page formats, custom page formats, custom margins and units of measure;
- UTF-8 Unicode and Right-To-Left languages;
- TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;
- Font subsetting;
- methods to publish some XHTML + CSS code, Javascript and Forms;
- images, graphic (geometric figures) and transformation methods;
- native support for JPEG, PNG and SVG images;
- 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code, PDF417;
- Grayscale, RGB, CMYK, Spot Colors and Transparencies;
- automatic page header and footer management;
- document encryption and digital signature certifications;
- transactions to UNDO commands;
- PDF annotations, including links, text and file attachments;
- text rendering modes (fill, stroke and clipping);
- multiple columns mode;
- bookmarks and table of content;
- text hyphenation;
- automatic page break, line break and text alignments including justification;
- automatic page numbering and page groups;
- move and delete pages;
- page compression.
这里也还有一些例子,有61个之多:
- Simple PDF with default Header and Footer: [PHP] [PDF]
- Simple PDF without Header and Footer: [PHP] [PDF]
- Custom Header and Footer: [PHP] [PDF]
- Cell stretching: [PHP] [PDF]
- Multicell: [PHP] [PDF]
- WriteHTML and RTL support: [PHP] [PDF]
- Independent columns with WriteHTMLCell: [PHP] [PDF]
- External UTF-8 text file: [PHP] [PDF]
- Image: [PHP] [PDF]
- Multiple columns: [PHP] [PDF]
- Colored Tables: [PHP] [PDF]
- Graphic Functions: [PHP] [PDF]
- Graphic Transformations: [PHP] [PDF]
- Javascript and Forms: [PHP] [PDF]
- Bookmarks (Table of Content): [PHP] [PDF]
- Document Encryption: [PHP] [PDF]
- Independent columns with MultiCell: [PHP] [PDF]
- Persian and Arabic language on RTL document: [PHP] [PDF]
- Non unicode / Alternative config file: [PHP] [PDF]
- Multicell complex alignment: [PHP] [PDF]
- writeHTML alignment: [PHP] [PDF]
- CMYK colors: [PHP] [PDF]
- Page Groups: [PHP] [PDF]
- Object Visibility: [PHP] [PDF]
- Object Transparency: [PHP] [PDF]
- Text Clipping: [PHP] [PDF]
- Barcodes: [PHP] [PDF]
- Multiple page formats: [PHP] [PDF]
- Set PDF viewer display preferences: [PHP] [PDF]
- Colour gradients: [PHP] [PDF]
- Pie Chart Graphic: [PHP] [PDF]
- EPS/AI vectorial image: [PHP] [PDF]
- Mixed font types (TrueType Unicode, core, CID-0): [PHP] [PDF]
- Clipping masks: [PHP] [PDF]
- Line styles with cells and multicells: [PHP] [PDF]
- Text Annotations: [PHP] [PDF]
- Spot Colors: [PHP] [PDF]
- NON-embedded CID-0 CJK font: [PHP] [PDF]
- HTML Justification: [PHP] [PDF]
- Booklet (double-sided pages): [PHP] [PDF]
- File attachment: [PHP] [PDF]
- Image with Alpha Channel Transparency: [PHP] [PDF]
- Disk caching: [PHP] [PDF]
- Move, Copy and delete page: [PHP] [PDF]
- Table Of Content with Bookmarks: [PHP] [PDF]
- Text hyphenation: [PHP] [PDF]
- Transactions and UNDO: [PHP] [PDF]
- Table header and rowspan: [PHP] [PDF]
- TCPDF methods in HTML: [PHP] [PDF]
- 2D Barcode (QR Code): [PHP] [PDF]
- Full page background: [PHP] [PDF]
- Digital Signature Certification: [PHP] [PDF]
- Javascript functions: [PHP] [PDF]
- XHTML Form: [PHP] [PDF]
- Font Dump: [PHP] [PDF]
- Crop Marks and Registration Marks: [PHP] [PDF]
- Cell vertical alignments: [PHP] [PDF]
- SVG Image: [PHP] [PDF]
- Table Of Content with HTML templates: [PHP] [PDF]
- Advanced page settings: [PHP] [PDF]
- XHTML + CSS: [PHP] [PDF]
可以尝试试用一下吧。
Tags: tcpdf, fpdf, pdf
PHP | 评论:0
| 阅读:20095
Submitted by gouki on 2010, June 8, 10:11 AM
前段时间我推荐了zen coding,并为此用上了notepad++,感觉在作网页的时候还行。而且,我的同事用dreamweaver的,也用上了它,感觉同样很爽。比如他输入:
XML/HTML代码
- div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer
生成如下页面:
XML/HTML代码
- <div id="page">
- <div id="header">
- <ul id="nav">
- <li><a href=""></a></li>
- <li><a href=""></a></li>
- <li><a href=""></a></li>
- <li><a href=""></a></li>
- </ul>
- </div>
- <div id="page">
- <h1><span></span></h1>
- <p></p>
- <p></p>
- </div>
- <div id="footer"></div>
- </div>
早上推荐给
小茗时,他说,Zen coding有for editplus的了。欣欣下载下来。运行后却发现,生成后的代码与官方不一样,看来还是有待改进啊,zen coding for editplus生成的代码是:
XML/HTML代码
- <div id="page"></div>
- <div id="header">
- <ul id="nav">
- <li>
- <a href=""></a><div id="page"></div>
- <h1>
- <span></span><p></p>
- <p></p>
- <div id="footer"></div>
- </h1>
- </li>
- <li>
- <a href=""></a><div id="page"></div>
- <h1>
- <span></span><p></p>
- <p></p>
- <div id="footer"></div>
- </h1>
- </li>
- <li>
- <a href=""></a><div id="page"></div>
- <h1>
- <span></span><p></p>
- <p></p>
- <div id="footer"></div>
- </h1>
- </li>
- <li>
- <a href=""></a><div id="page"></div>
- <h1>
- <span></span><p></p>
- <p></p>
- <div id="footer"></div>
- </h1>
- </li>
- </ul>
- </div>
这个与标准的偏 差实在是太大了。。。不过。在简单的情况下,还是可以使用的。将就着喽。总比没有的好。
下载地址为:http://www.vfresh.org/w3c/914
Tags: zencoding, editplus, notepad++
PHP | 评论:0
| 阅读:21067
Submitted by gouki on 2010, June 7, 4:01 PM
为了测试phprpc_client for SAE,到小菜鸟的app网站上把他的API全部复制到SAE的空间里,做了一点测试。有不少功能呢。每个例子最后我都用highlight_file把当前文件全部打印出来。可以,写的时候就可以做参考了。
事实上也没有什么 好参考的,小菜鸟的网上有的是代码,还有演示,我这里只是仅仅作了COPY而己。
对于最后的页面显示时间,这个就涉及到网络关系了,和实际执行时间并没有太大的联系,纯粹一看。
很多例子都在:
小菜鸟的APP网站是:MYWS,对了。小菜鸟还做了一个Ecshop的皮肤,仿凡客,也不错,演示在:http://shop.17kaixin8.com/,如果觉得好,也可以向他购买哦。
Tags: phprpc, 17kaixin8, ecshop
PHP | 评论:1
| 阅读:19356
Submitted by gouki on 2010, June 6, 10:59 PM
在setting sun的博客上发现一篇 文章,他认为:
PHP代码
- $p = "/^(?<ip>.*) (?<time>.*)$/";
- $s = "10.4.0.111 2009-09-09";
- preg_match($p, $s, $m);
- print_r($m);
输出:
XML/HTML代码
- Array ( [0] => 10.4.0.111 2009-09-09 [ip] => 10.4.0.111 [1] => 10.4.0.111 [time] => 2009-09-09 [2] => 2009-09-09 )
这个数组中有ip,time的key,他认为这是PHP5.3的功能。回复中echo说没什么特别。
事实上,这个还真不是php5.3的功能,它是PHP4.3开始就有的功能。详情可以看手册:
Pattern Syntax -- Describes PCRE regex syntax这一章。其中有一段就是:
XML/HTML代码
- It is possible to name the subpattern with (?P<name>pattern) since PHP 4.3.3. Array with matches will contain the match indexed by the string alongside the match indexed by a number, then.
所以,这还真不是啥新功能,只是我们很少用到而已。顺便说一句,今天的lamp分享中,祁宏还真的提到了这一点(关于分享内容我写了博客,但祁宏讲的内容,我没有详细记录
参加lamp聚会有感 ),所以我才特别有印象。
本想回复到setting sun的博客上的,但。。。后来打不开了,原文网址为:http://www.setting.cc/blog/archives/2.html
Tags: perl, preg_match, php, pattern
PHP | 评论:3
| 阅读:21013
Submitted by gouki on 2010, June 6, 8:24 PM
做技术的难免都会遇到技术分享这个词,其实,它并不难懂也不难理会,只是以前很多人更多喜欢自己独自享受,以防影响到自己的职业。但到了近几年,技术分享这个词越来越被大多人所提及,毕竟你一个人了解的技术也是有限的,在圈内推广或者分享的时候,你虽然把你的经验与他人分享了,别人可能学会了你的东西、技术,但是你也相对的了解了其他的技术细节,这是你一个人的时代无法得到的。
单兵作战的时代早就过去了。现在讲究的是团队作战,当然个人技术很可能会占有主导地位,但你总不是万能的。
就象这次lamp聚会,我更想听的是逍遥冰心:《领域驱动设计简述》和蒙显仁:《LAMP在51座席项目中的应用》,遗憾的是这两位都没有来,相反,我却在我认为意义不大的演讲中获取了很多有用的东西,比如滕振宇:《Check in Dance》,真正让我了解到原来check in,并非那么简单,其实在我们的项目中,使用版本控制的时候,一般情况下,都会差不多半天check一次吧。但滕振宇讲的技续集成、atdd等让我受益匪浅,虽然他用的是c#而并非PHP,但是他的一些工具和他的作法很值得推广,比如红绿灯机制、rabbit之类的(参考一些大公司)。如果是重要项目,甚至有小熊机制(得到小熊的人才能checkin代码)这对于小型公司的人来说确实比较难以遇到。事实上我也一直在小型公司打拼。虽然我一直认为我不是做技术的料。滕振宇让我意识到合理的利用工具,绝对是可以增加工作效率的。但我却还是用不到这些,在小公司,并非以产品为主导的公司,如电子商务,一切都是以开发效率至上的,东西错了可以改(只要不涉及到钱)。所以什么单元测试啥的很多时候是用不到的。虽然小公司也有UserStroy,但效率、效用并不如大公司来的那么彻底。
再谈一下方言的《优秀产品欣赏》,方言给了我们很好的产品介绍,以及对于一个产品的分析,品析了玉溪香烟,对于用户忠诚度、品牌认知度、推广度等进行了简要的介绍(其实上就是在分析一款产品对于用户来说有哪些是可以控制并拿来利用的。)还介绍了MacBook,并坦言在自己公司也推广了4台。事实上我对于MB也是有点想法的,只是闲钱不多,没办法了,忍忍吧。最后他介绍了自己的一个做了两年的产品,看他演示的时候感觉好象不错,但是在线版的说实话,不敢用。真的,在国内,凡是涉及到用户信息的,我还真是不太敢使用,我越来越胆小了。但那款软件,感觉上真不错。最起码他在演示的时候显现出来的功能让我感觉很爽。是类似网页设计的。
其实祁宏:《正则表达式入门》和Ben:《基于 Zend Framework 的 Web 开发实践》都不错,只是这两个东西对我来说已经了解过很多次,所以相对就没有特别的关注。祁宏(并非足球运动员哦)的正则表达式并非他所言讲的只是初级的,到后面的内容已经是一般项目中用不到的内容了。有点深后,反而影响了大家的兴趣,因为他也不可能每一句都讲解的非常详细,反而就觉得不太实用了。举两个实际例子的话,或许会好上很多(比如采集网页啥的。如何写上一些关键代码,可能会更吸引人。),regexbuddy这个工具实在太出名了。验证正则表达式,几乎都会用到吧?Ben的ZF框架介绍的不错,只是时间有点拉长了(注重了细节而没有把如何应用架构列的详细)如果真要介绍ZF的流程性操作,bootstrap可是有的讲了。板爷也说了,真要讲ZF,三天三夜也讲不完啊。说实话,做WEB项目,我还真是很少有看到拿ZF来做的,虽然我也比较推荐(因为有完整的团队在支持而不是那一些个人框架,说不定哪天就不支持了,那才郁闷比如我们现在用的thinksns,那真叫一个郁闷啊。)ZF可拿来说的事还真不少,MVC这块除了V之外,M和C都是让人很头疼的。M吧,一直没有一个完整的model类,全部是通过zend_db_table,zend_db_table_gateway,..table_row等进行CRUD,当然要说select的话,他还提供了一个zend_db_select(这是支持连贯操作的类),对于表关联操作,我记得zend官方也说过,好象没有一个特别完美的方法,连他们自己对于zend_db_table_gateway都不满意,更不用说用户了。。。。C嘛。因为涉及到front_controller,就又显得复杂了一点。真想程序逻辑与business logic完全分开,那真的就要等逍遥冰心:《领域驱动设计简述》了。V。。要么不扩展,如果真扩展了。那些View_Helper类,几乎完全作废。
完事,对于此次分享会我是受益颇多,毕竟有些想法是我以前没有想到的。如果以后还有这种机会我还是想去,当然尽量不要太远的。HOHO。对于滕振宇所提的软件协会的一些探讨会,感觉不错,只是不知道有没有时间去听了。
听说一些老外的分享会也不错,但我这个人有点闷骚,不太喜欢讲。如果用电脑交流或许会更好一点。所以,我更多的只能适合作为一个旁听者而不是演讲者了。再加上,我也应该是属于野路子编程,其间之事,实不足为外人道也。Over
结束前突然想起一位朋友说的我聚会后的博客更新很快。其实,这只是对于听大家分享内容的一点笔记而己。由于我没有带任何笔、纸等 相关用来记忆的东西,在听完分享后,为了防止自己遗忘,总要想个办法记录下来,既是一种记录也是加深自己的印象,对于分享中了解的东西做一点归纳,哪些是自己能够吸收的,哪些是可以听过就忘的,哪些是未来想要了解的。这些,还是很重要的。
本次活动由ThinkInLamp牵头举办,发起人为三马,活动网址:http://blog.thinkinlamp.com/?p=174,本篇我听完分享后的个人感想而已
Tags: lamp, 三马, 聚会, 分享
PHP | 评论:1
| 阅读:19045