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

网络整理 - 07-26
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 版本号  


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