使用FPDF生成PDF文件代码分析

使用FPDF生成PDF文件代码分析

FPDF的功能确实很强大,但它是如何实现PDF文件生成的呢,我决定深入分析一下它的代码,以求对其进行改进,应用到自己的项目中。

FPDF实际上是一个类,由于该类在php4和5下都能正常运行,那么就从PHP4的角度来分析它。首先从类的属性、构造函数开始,然后按类的公共方法的顺序进行分析,遇到调用其他方法的时候将其提前进行分析。

首先来看类的属性:

var $page; // 当前页数

var $n; // 当前对象数

var $offsets; //array of object offsets

var $buffer; // PDF 缓存

var $pages; // 包含页数的数组

var $state; // 当前文档状态

var $compress; // 压缩标记

var $k; // 比例因子(用户指定单位内的点)

var $DefOrientation; // 默认方向

var $CurOrientation; // 当前方向

var $PageFormats; // 可用的页格式

var $DefPageFormat; // 默认的页格式

var $CurPageFormat; // 当前的页格式

var $PageSizes; // 保存非默认页面大小的数组

var $wPt,$hPt; // 用点表示的当前页尺寸

var $w,$h; // 用户指定单位表示的当前页尺寸

var $lMargin; // 页面左边距

var $tMargin; // 页面上边距

var $rMargin; // 页面右边距

var $bMargin; // 换页边距

var $cMargin; // 内部单元边距

var $x,$y; // 用户单位表示的当前坐标

var $lasth; // 最近输出单元的高度

var $LineWidth; // 用户单位表示的线宽,即粗细

var $CoreFonts; // 标准字体名称的数组

var $fonts; // 用到的字体的数组

var $FontFiles; // 字体文件的数组

var $diffs; // 编码差异的数组

var $FontFamily; // 当前字体

var $FontStyle; // 当前字体样式

var $underline; // 下划线标记

var $CurrentFont; // 当前字体信息

var $FontSizePt; // 用点表示当前字体大小

var $FontSize; // 用户单位表示当前字体大小

var $DrawColor; // 绘图颜色指令

var $FillColor; // 填充颜色指令

var $TextColor; // 文字颜色指令

var $ColorFlag; // 指出填充颜色和文字颜色是否不同

var $ws; // 文字间距

var $images; // 用到的图片的数组

var $PageLinks; // 页面链接的数组

var $links; // 内部链接的数组

var $AutoPageBreak; // 自动分页

var $PageBreakTrigger; // 自动分页的触发值,即最大内容高度

var $InHeader; // 处理页眉时的标记

var $InFooter; // 处理页脚时的标记

var $ZoomMode; // 显示时的缩放模式

var $LayoutMode; // 分页显示模式

var $title; // 文件标题

var $subject; // 文件主题

var $author; // 文件作者

var $keywords; // 文件关键词

var $creator; // 应用程序,不知道啥意思,PDF属性里的

var $AliasNbPages; // 页面总数的别名,用于在该位置显示页面总数

var $PDFVersion; // PDF 版本号

这里把注释换成了中文的,仅供参考吧!