注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Flex 技术博客

醉里挑灯看剑,梦回吹角连营

 
 
 

日志

 
 

给AlivePDF的页脚footer()添加页数page number  

2009-03-31 12:28:44|  分类: AlivePDF |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近在用AlivePDF做flex的PDF打印,发现功能还是很强的,虽然还有一些小bug,不过Thibault和他的团队一直都在完善。今天介绍如何给PDF添加页脚的页数信息。
给AlivePDF的页脚footer()添加页数page number - 阿蔡 - Flex 技术博客
你可以直接在PDF类的footer()函数中添加代码逻辑,也可以继承重写。下面是重写例子代码:
override public function footer():void{
           this.setFont( FontFamily.ARIAL, Style.ITALIC, 8 );
           var totalW:Number = this.currentPage.w - this.lMargin - this.rMargin;  
           this.addCell(totalW/2,6,'Page '+this.nbPages +" of {nb}","T",0,'L');
           this.addCell(totalW/2,6,footerText,0,0,'R');
}
其中的nbPages是当前页数current page number,{nb}是一个总页数的替换符,因为当前版本的alivepdf提供的totalpages变量不准确,因此我们利用它提供的setAliasNbPages(’{nb}’)函数来实现。
首先我们在初始化pdf后,需要设定一下总页数的别名。
PDF:setAliasNbPages(’{nb}’) - 只是设定了总页数的别名,实际是在pdf文件结束的时候根据这个别名进行全面的更新。
更新工作中函数PDF:protected function createPageTree():void
这里需要注意的是源代码有bug,我们需要替换
if( aliasNbPages != null )
{
for( n = 0; n<nb; n++ ) arrayPages[n].content = findAndReplace ( aliasNbPages, ( nb as String ), arrayPages[n].content );
}
为:
if( aliasNbPages != null )
{
     //modified by willis
    for( var j:int = 0; j<nb; j++ )arrayPages[j].content = findAndReplace ( aliasNbPages, ( ""+nb), arrayPages[j].content );
}
主要修改是两个地方,一个是变量n,这个变量不能被随意修改;另外是nb as String 通过调试发现总是null,因此简单改成""+nb。

  评论这张
 
阅读(2101)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017