=波波日志 > flash/flex/fcs/AIR > 26.10.控制打印未知长度的多页内容=
[转]26.10.控制打印未知长度的多页内容
26.10.1. 问题
我想控制超过多页打印内容的布局,但是我不知道到底有多少数据将被打印以及组件的尺寸。
26.10.2. 解决办法
如果你要打印表格式数据,需要使用PrintDataGrid组件控制多页内容的打印。PrintDataGrid组件可控制变化的重复的多页打印内容。
26.10.3. 讨论
如果你有表格式的数据,比如数据报表,就可以使用PrintDataGrid组件格式化数据打印多页内容了。PrintDataGrid组件是一个特定的数据表格,设计用于打印多页内容的数据,下面的例子MultipageDataGrid.mxml,利用PrintDataGrid打印报表数据:
当使用PrintDataGrid时,你需要设置大小以匹配页面尺寸。添加表格到打印任务将添加第一页,使用validNextPage属性测试是否还有额外页面的数据,通过nextPage方法准备好下一页打印数据。
灵活使用PrintDataGrid组件可以帮你格式化各种类型的打印数据。PrintDataGrid并没有限制只用于打印表格式文本,PrintDataGrid可与项渲染器组合生成如图表,图像或复杂的组件。
下面的例子GridSquares.mxml,PrintDataGrid与项渲染器组合生成相同的红色方框集合-ManualMultiPage.mxml:
我想控制超过多页打印内容的布局,但是我不知道到底有多少数据将被打印以及组件的尺寸。
26.10.2. 解决办法
如果你要打印表格式数据,需要使用PrintDataGrid组件控制多页内容的打印。PrintDataGrid组件可控制变化的重复的多页打印内容。
26.10.3. 讨论
如果你有表格式的数据,比如数据报表,就可以使用PrintDataGrid组件格式化数据打印多页内容了。PrintDataGrid组件是一个特定的数据表格,设计用于打印多页内容的数据,下面的例子MultipageDataGrid.mxml,利用PrintDataGrid打印报表数据:
+展开
-ActionScript
public function print():void
{
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start())
{
var printGrid:PrintDataGrid = new PrintDataGrid();
printGrid.width = printJob.pageWidth;
printGrid.height = printJob.pageHeight;
printGrid.columns = populationGrid.columns;
printGrid.dataProvider = populationData.state;
printGrid.visible = false;
Application.application.addChild(printGrid);
printJob.addObject(printGrid);
while (printGrid.validNextPage)
{
printGrid.nextPage();
printJob.addObject(printGrid);
}
printJob.send();
Application.application.removeChild(printGrid);
}
}
{
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start())
{
var printGrid:PrintDataGrid = new PrintDataGrid();
printGrid.width = printJob.pageWidth;
printGrid.height = printJob.pageHeight;
printGrid.columns = populationGrid.columns;
printGrid.dataProvider = populationData.state;
printGrid.visible = false;
Application.application.addChild(printGrid);
printJob.addObject(printGrid);
while (printGrid.validNextPage)
{
printGrid.nextPage();
printJob.addObject(printGrid);
}
printJob.send();
Application.application.removeChild(printGrid);
}
}
当使用PrintDataGrid时,你需要设置大小以匹配页面尺寸。添加表格到打印任务将添加第一页,使用validNextPage属性测试是否还有额外页面的数据,通过nextPage方法准备好下一页打印数据。
灵活使用PrintDataGrid组件可以帮你格式化各种类型的打印数据。PrintDataGrid并没有限制只用于打印表格式文本,PrintDataGrid可与项渲染器组合生成如图表,图像或复杂的组件。
下面的例子GridSquares.mxml,PrintDataGrid与项渲染器组合生成相同的红色方框集合-ManualMultiPage.mxml:
+展开
-ActionScript
public function print(itemSize:int, itemCount:int):void
{
var printData:Array = new Array();
for (var i:int = 0; i < itemCount; i++)
{
printData.push(itemSize);
}
var column:DataGridColumn = new DataGridColumn();
column.headerText = "";
column.itemRenderer = new ClassFactory(SquareRenderer);
var printGrid:PrintDataGrid = new PrintDataGrid();
printGrid.showHeaders = false;
printGrid.visible = false;
printGrid.setStyle("horizontalGridLines", false);
printGrid.setStyle("verticalGridLines", false);
printGrid.setStyle("borderStyle", "none");
printGrid.columns = [column];
printGrid.dataProvider = printData;
Application.application.addChild(printGrid);
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start())
{
printGrid.width = printJob.pageWidth;
printGrid.height = printJob.pageHeight;
printJob.addObject(printGrid);
while (printGrid.validNextPage)
{
printGrid.nextPage();
printJob.addObject(printGrid);
}
rintJob.send();
}
Application.application.removeChild(printGrid);
}
{
var printData:Array = new Array();
for (var i:int = 0; i < itemCount; i++)
{
printData.push(itemSize);
}
var column:DataGridColumn = new DataGridColumn();
column.headerText = "";
column.itemRenderer = new ClassFactory(SquareRenderer);
var printGrid:PrintDataGrid = new PrintDataGrid();
printGrid.showHeaders = false;
printGrid.visible = false;
printGrid.setStyle("horizontalGridLines", false);
printGrid.setStyle("verticalGridLines", false);
printGrid.setStyle("borderStyle", "none");
printGrid.columns = [column];
printGrid.dataProvider = printData;
Application.application.addChild(printGrid);
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start())
{
printGrid.width = printJob.pageWidth;
printGrid.height = printJob.pageHeight;
printJob.addObject(printGrid);
while (printGrid.validNextPage)
{
printGrid.nextPage();
printJob.addObject(printGrid);
}
rintJob.send();
}
Application.application.removeChild(printGrid);
}
类别:flash/flex/fcs/AIR 作者:转载 日期:2010-04-30 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·As+lightbox+js实现..
- ·21.8.使用Cairngorm..
- ·13.1.为ArrayCollec..
- ·18.13.通过二进制So..
- ·22.7.使用ModuleLoa..
- ·JavaScript控制Flas..
- ·6.6.动态载入外部图..
- ·flash预加载进度条p..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(598)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(96)
- 其他(75)
- showbo日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(25)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·PHP socket套接字学..
- ·Warning Cannot sen..
- ·php与flash as3 soc..
- ·Flash XMLSocket使用..
- ·给flash右键增加自定..
- ·flash控件html及col..
- ·Flash加载XML文件CD..
- ·Flex3中文教程--hom..
随机博文
