0

如果我打印一个不止一页的 AdvancedDataGrid,一切都很好。但是,如果要打印的页面少于一页,则最后一行总是在第二页的顶部结束。

下面列出了执行打印作业的方法。如果不是我能做些什么来使它在单个页面上正常工作,我是否错过了一些东西。

谢谢

const printJob:FlexPrintJob = new FlexPrintJob();

if ( printJob.start() ) {
    const printDataGrid:PrintAdvancedDataGrid = new PrintAdvancedDataGrid();
    printDataGrid.width = printJob.pageWidth;
    printDataGrid.height = printJob.pageHeight;
    printDataGrid.columns = districtVolunteers_dg.columns;
    printDataGrid.dataProvider = districtVolunteersXML.copy();
    printDataGrid.setStyle("fontSize", 8);
    printDataGrid.setStyle("fontFamily", 'Times');
    printDataGrid.sizeToPage;
    printDataGrid.visible = false;
    FlexGlobals.topLevelApplication.addChild(printDataGrid);
    while (printDataGrid.validNextPage) {
        printDataGrid.nextPage();
        printJob.addObject(printDataGrid);

    }
    printJob.send();
    FlexGlobals.topLevelApplication.removeChild(printDataGrid);
}
4

1 回答 1

0

我通过在 while 循环之外添加第一页并将比例类型设置为无解决了这个问题......

printJob.addObject(printDataGrid, FlexPrintJobScaleType.NONE);
while (printDataGrid.validNextPage) {
    printDataGrid.nextPage();
    printJob.addObject(printDataGrid, FlexPrintJobScaleType.NONE);

}
printJob.send();

如果您对我打印数据网格的完整解决方案感兴趣,请参阅我关于为打印作业添加上边距的问题的答案... 19164992

于 2013-10-03T16:49:30.947 回答