温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Silverlight4和Flex4打印功能有什么区别和联系

发布时间:2021-12-16 16:32:04 来源:亿速云 阅读:147 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“Silverlight4和Flex4打印功能有什么区别和联系”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Silverlight4和Flex4打印功能有什么区别和联系”这篇文章吧。

Silverlight4和Flex4打印功能大比拼

Silverlight作为一门新技术推出已经三年,在Silverlight早期版本,大家都认为Silverlight的功能无法和Flex进行对比,更是无法超越Flex,在2009年11月,微软推出了Silverlight4测试版本,以其强大的功能又一次吸引了众多开发人员的眼球,许多曾经在Flex下支持的功能,现在Silverlight下已经可以实现,而且还有一些新的功能,Flex无法实现。例如,Silverlight4的COM组件交互,从桌面拖拉对象到Silverlight应用等功能。为了使更多的开发人员了解Silverlight开发平台,我将对Silverlight4和Flex4进行一系列的对比,希望能帮助开发人员了解更多Silverlight新功能。本文,将对Silverlight4和Flex4的打印功能进行对比。

Silverlight4打印功能

Silverlight4的打印功能石油PrintDocument类进行控制,实现打印功能需要按照以下步骤:

步骤1:建立PrintDocument对象;

步骤2:在PrintDocument对象中设置文档名;

步骤3:添加事件句柄到PrintPage事件中,同时也可以添加到StartPrint和EndPrint事件中;

步骤4:在PrintPage打印事件中,建立一个打印窗口,该窗口将作为父窗口出现,可以添加想打印的内容或者控件到该打印窗口。例如建立一个StackPanel,然后在StackPanel中添加想打印的内容控件;

步骤5:在打印时,如果HasMorePages为True,说明支持多个页面进行打印;

步骤6:重复4和5步骤,就可以实现完整的Silverlight4打印功能;

看起来这些步骤是不是很简单。下面提供一个例程代码,点击打印按钮后,会打印出“HelloWorld”。

usingSystem;   usingSystem.Windows;  usingSystem.Windows.Controls;   usingSystem.Windows.Printing;   namespaceHelloPrinter   {   publicpartialclassMainPage:UserControl   {   publicMainPage()  {   InitializeComponent();   }  privatevoidbutton1_Click(objectsender,RoutedEventArgse)  {   PrintDocumentprintDoc=newPrintDocument();   printDoc.DocumentName="HelloWorldfromSilverlight";   printDoc.PrintPage+=newEventHandler(printDoc_PrintPage);   printDoc.Print();  }   voidprintDoc_PrintPage(objectsender,PrintPageEventArgse)  {   StackPanelpanel=newStackPanel(){OrientationOrientation=Orientation.Horizontal};   panel.Children.Add(newTextBlock(){Text="Hello",   FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12});   panel.Children.Add(newTextBlock(){Text="World",   FontFamily=newSystem.Windows.Media.FontFamily("Arial"),FontSize=12});   e.PageVisual=panel;   e.HasMorePages=false;   }  }  }

当点击按钮后,会调用打印事件句柄,在打印过程中,Silverlight将自动设置打印窗口的宽和高,可以通过PrintableArea属性获取在打印事件中获取打印页面的宽和高。

Flex4打印功能

Flex4的打印功能和Silverlight4打印功能步骤很相似,但是实现不同,Flex4的打印功能不是事件驱动,基本步骤如下:

步骤1:建立FlexPrintJob对象,可以把该对象看作Silverlight的PrintDocument;

步骤2:使用一个布尔变量控制要打印的图片格式,例如是打印矢量图还是打印位图;

步骤3:调用FlexPrintJob中的Start()方法,这时会弹出提示窗口,询问是否开始打印,选择确定,将开始打印;

步骤4:建立一个打印对象,并添加这个打印对象到现实列表中;

步骤5:使用FlexPrintJob中的addObject()添加对象到打印页面中;

步骤6:调用FlexPrintJob中的send()方法,对添加的打印页面进行打印;

步骤7:打印后,删除已经打印的视图对象;

下面提供按钮事件代码,点击按钮后,会打印出“HelloWorld”。

protectedfunctionbutton1_clickHandler(event:MouseEvent):void   {   varjob:FlexPrintJob=newFlexPrintJob();   job.printAsBitmap=false;   if(job.start()){   vargroup:HGroup=newHGroup();   group.height=job.pageHeight;   group.width=job.pageWidth;   vartext:SimpleText=newSimpleText();   text.text="Hello";   text.setStyle("fontFamily","Arial");   text.setStyle("fontSize",12);   group.addElement(text);   text=newSimpleText();   text.setStyle("fontFamily","Arial");   text.setStyle("fontSize",12);   text.text="World";   group.addElement(text);   addElement(group);   job.addObject(group,FlexPrintJobScaleType.NONE);   job.send();   removeElement(group);   }


对比上面的两组打印代码可以看出Flex实现打印需要多设置一些参数,主要是因为:

1.在Flex打印中,需要设置打印格式,是位图模式,还是矢量图模式;

2.Flex不支持自动设置打印对象在打印页面中的宽和高;

以上是“Silverlight4和Flex4打印功能有什么区别和联系”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI