我正在为我正在开发的AIR应用程序构建一个非常基本的报表编写器。我正在使用Flash PrintJob类输出我的报告的内容(其中的页面作为Canvas对象存储在ViewStack对象中)。问题是,只有我在报告预览屏幕中看到的内容才会被打印出来。有没有办法可以打印Canvas对象包含的内容而不仅仅是可见内容?
非常感谢你的帮助。
以下是我正在使用的代码段:
protected function doPrintReport(event:Event):void
{
var pj:PrintJob = new PrintJob();
var pjo:PrintJobOptions = new PrintJobOptions();
CursorManager.setBusyCursor();
if(pj.start() == true) {
if(vsOutput.orientation == "landscape") {
pj.orientation = PrintJobOrientation.LANDSCAPE;
}
else {
pj.orientation = PrintJobOrientation.PORTRAIT;
}
for(var i:int = 0; i < vsOutput.length; i++) {
var pc:Canvas = new Canvas();
pc = vsOutput.getChildAt(i) as Canvas;
pj.addPage(pc, null, pjo);
}
}
else {
CursorManager.removeBusyCursor();
MsgBox.error("Failed to initiate printing", "Printing Error");
return;
}
try{
pj.send();
}
catch(e:Error)
{
CursorManager.removeBusyCursor();
MsgBox.error(e.toString(), "Printing Error");
return;
}
CursorManager.removeBusyCursor();
MsgBox.info("Print request sent successfully", "Print Request");
}