前一段时间有一个ROR的小项目,需要输出PDF文件,于是到网上搜了一圈儿,最后选定了ruby版的fpdf(1.53d),特点:短小,实用。
但是使用过程中也碰到了一些小问题。中文问题,如果使用'GB'字体,中文可以正常显示,但是如果混入了数字或英文,格式很难看。
我发现在chinese.rb中还有一种叫'GB-hw'的字体,拿来一试,效果很好,只是chinese.rb中有两处bug需要修改。
第一处在87行后追加 cw = {},第二处在113行,原文是 l += cw[c],改成 l += cw[c.chr]就可以了。
再举一个使用的例子,首先在app\models目录下建一个gpdf.rb文件用来写页头和页脚的内容。
class Gpdf < FPDF
attr_accessor :title
# Page header
def Header
ic = Iconv.new('GBK', 'UTF-8')
# GB-hw bold 16
SetFont('GB-hw','',16)
# Title
Cell(0, 10, ic.iconv(@title), 0, 0, 'C')
# Line break
Ln(12)
end
# Page footer
def Footer
# Position at 1.5 cm from bottom
SetY(-15)
ic = Iconv.new('GBK', 'UTF-8')
# GB-hw italic 8
SetFont('GB-hw','',8)
# Page number
Cell(0, 10, ic.iconv('页 ') + PageNo().to_s + '/{nb}', 0, 0, 'C')
end
end
然后在Controller里像下面这么用就可以了。
pdf = Gpdf.new
pdf.title = '销售产品'
pdf.extend(PDF_Chinese)
pdf.AddGBhwFont
pdf.AliasNbPages
pdf.AddPage
ic = Iconv.new('GBK', 'UTF-8')
pdf.SetFont('GB-hw','',10)
pdf.Cell(55, 7, ic.iconv('金额123'), 1, 0, 'C')
分享到:
- 2008-09-11 14:35
- 浏览 2411
- 评论(1)
- 论坛回复 / 浏览 (1 / 2521)
- 查看更多
相关推荐
"Fpdf1.7官方最新版"指的是FPDF库的1.7版本,这是该库的一个稳定版本,包含了各种优化和改进,以满足不同用户的需求。 FPDF的核心特点在于其完全由PHP编写,无需任何外部依赖,这使得它在Web服务器上易于部署和使用...
"fpdf中文版本带中文帮助文档" 提供了FPDF库的中文语言支持和相关的中文文档,使得中文用户在使用过程中能更好地理解和应用这个工具。 FPDF的核心功能包括: 1. 页面管理:FPDF允许开发者创建新的PDF页面,并控制...
FPDF中文说明,FPDF中文说明,FPDF中文说明,
这个“fpdf1.51 及例子”压缩包包含的是 FPDF 的 1.51 版本及其相关的示例代码,可以帮助用户理解和学习如何使用 FPDF 来创建 PDF 文件。 FPDF 的全称是 "Free PDF Generator for PHP",它允许 PHP 开发者在服务器...
`license.txt`文件中记录了FPDF库的许可协议,通常FPDF遵循的是MIT或GPL等开源许可,这决定了用户可以如何使用、修改和分发该代码。 `makefont`目录可能包含了用于创建自定义PDF字体的工具,因为FPDF默认只支持几种...
这个版本相对于早期版本可能包含了一些改进和修复,例如提高了性能,增加了新功能,或者解决了已知的bug。更新到较新版本通常可以获取更好的稳定性和兼容性。 描述中提到了"中文类",这意味着FPDF1.7版本支持中文...
在描述中提到了“fpdf扩展”,这通常指的是为fpdf增加对中文字符的支持。由于fpdf原生不包含中文字体,我们需要扩展其功能,通常是通过引入额外的字体库或转换工具。描述中还提到了“fpdf中文处理”,这可能包括添加...
这两个文件可能是关于fpdf的常见问题解答(FAQ)和历史版本记录。FAQ.htm可能包含了使用fpdf过程中遇到的问题及解决方案,而histo.htm可能记录了fpdf库的更新历程和各个版本的特性。 **chinese.php** chinese.php...
2. **函数扩展**:扩展FPDF的核心类,添加新的方法用于设置中文字体、大小和样式。 3. **编码处理**:处理中文字符编码问题,确保与PDF文档的UTF-8或其他编码格式兼容。 4. **文字输出**:提供专门的函数来输出...
资源包含chinese.php pdf中文支持类、还有fpdf1.6版本,还有ttf2pt1中文支持文档、ttf2pt1中文格式转换程序(ttf2pt1.zip和ttf2pt1-chinese-3.4.0.zip)分开上传,大家可以对应下载自己所需要的
FPDF chm 帮助 文档FPDF chm 帮助 文档FPDF chm 帮助 文档FPDF chm 帮助 文档FPDF chm 帮助 文档FPDF chm 帮助 文档
这两个核心文件。 2. 实例化对象:创建一个HTML2FPDF对象,可以设置PDF的页面大小和方向。 3. 添加页面:调用对象的方法,如`AddPage()`,来添加新的PDF页面。 4. 转换HTML:使用`writeHTML()`方法,传入HTML字符串...
`html2fpdf` 是一个流行的PHP库,用于将HTML内容转换为PDF文档。这个工具在Web开发中非常有用,因为它允许开发者将网页内容轻松地导出为方便打印和保存的PDF格式。然而,由于HTML2FPDF最初设计时主要针对英文字符集...
PDF教程:FPdf中文补丁详解 在信息技术领域,PDF(Portable Document Format)是一种广泛用于文档交换的标准格式,因其跨平台、保持原文档格式的特点而备受青睐。然而,当需要在PHP环境中动态生成PDF文件时,FPdf便...
fpdf最新版本1.6。将下载的文件解压到某一个文件夹即可。 有一个需要配置的地方就是解压缩后得到的font文件夹。一般需要将该文件夹移动到用户站点与要调用fpdf类库代码在同一目录下,因为调用类库的时候要首先指明...
这个库的独特之处在于它完全由PHP编写,不需要任何外部依赖,如Adobe Acrobat,Ghostscript或其他PDF阅读器。通过FPDF,开发者可以直接在PHP代码中控制PDF的布局,包括添加文本、图像、线条、表格等元素,从而实现...
创建PDF时,首先要包含FPDF库文件,然后创建一个FPDF对象。例如: ```php require('fpdf17/fpdf.php'); $pdf = new FPDF(); ``` 接着,你可以设置页面尺寸和方向,比如: ```php $pdf->AddPage(); $pdf->SetMargins...
FPDF中的F意味着自由:你可以使用它的任何一种使用和修改它以适合你的需要。 FPDF还有其它优点:高水平的功能。这里是一个列表,它的主要特点: 计量单位的选择,网页格式和利润 页眉和页脚管理 自动分页符 自动换行...
FPDF 1.52 中文使用参考手冊,FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它所具有的特点包括:可选择的unit大小,页面格式和页边距;页眉和页脚管理;自动分页;自动换行与...