使用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 版本号
这里把注释换成了中文的,仅供参考吧!