关于silverlightrs打印文件很大的问题,有哪位高手有更好的解决方案,共享下。谢谢!
------解决方案--------------------------------------------------------
具体是什么意思?文件很大的意思是多大呢?有没有具体的数值?
------解决方案--------------------------------------------------------
sl4是支持打印的,,很大可以分页啊,。。我们现在用3,不支持打印,,都用的三方组件。。
------解决方案--------------------------------------------------------
SL4 打印只支持单页打印,我们项目打印是我做的有点汗颜做了两个星期,开始处理打印多页,再处理多页表格,还有分页截取字符串问题(中英文混合,如果是英文必须以单词做截取),头都搞大了,还好是做出来了,SL4打印我拿什么爱你,期待 SL5打印做的智能一些! 邮件:liouhaixiang5644@163.com 欢迎做SL企业级应用交流!
------解决方案--------------------------------------------------------
来推荐个组件,开个传送门
------解决方案--------------------------------------------------------
具体说说打印需求,SL4支持多页打印
------解决方案--------------------------------------------------------
SL4 打印的文件太大了
http://www.cnblogs.com/happycharles/archive/2010/05/28/1746455
(我们测试了一个分页为4页的文档,竟然有492MB之巨,直接的结果就是。。。打印机死掉了。。。)
============== 无奈的分割线 ==============
我们将该问题反馈给微软后,得到的答复如下:
根据我们的调查,发现这是因为Silverlight 4的打印功能是基于位图所致。假设打印对象的大小是:8.27 X 11.69 英寸,打印机的输出设置在600dpi,颜色设置为32位真彩色的话,那么Silverlight送到打印机的文件大小即为:8.27x11.69x600x600x4=139213872 Byte,约等于132MB,文件的size的确是很大,这是因为Silverlight 4打印功能是基于位图的而不是基于矢量图,所以在当前情况下,可能只能请您尽可能地把打印机的DPI设置的稍微低一点,来缩小打印文件的大小了。或者您可以选择打印网页,而不是直接打印XAML。
对于SL打印的改进,微软的回复如下:
根据我和产品组的确认结果,他们的确已经接到了很多类似的反馈,反映说由于打印功能是基于位图的,所以会造成很大的文件,他们将在设计下一代产品时,把基于矢量图的打印支持作为一个重要的候选特性进行考虑。非常抱歉现在给您带来的不便。同时我们非常感谢您的反馈,对如何改进Silverlight产品更贴近我们用户需求来说,这将是非常重要的和有价值的参考意见。
------解决方案--------------------------------------------------------
你可以把文档转换成图片,再进行一下压缩,最后就打印那张图片,应该会小很多。
------解决方案--------------------------------------------------------
学习了!
------解决方案--------------------------------------------------------
LZ可以做成分页形式,用datapager控件控制一下
------解决方案--------------------------------------------------------
Silverlight打印全套解决方案--支持打印预览、页面设置(横向纵向,页边距,纸张大小、字体大小)、自动分页和多页连续打印
http://www.cnblogs.com/slmk/archive/2011/10/30/2227253
------解决方案--------------------------------------------------------
想钱想疯了!
------解决方案--------------------------------------------------------
打印58MB,打印机打了一段英语,大概意思是打印机内存问题?如何解决,代码如下
var ah = this.grd.ActualHeight;
var aw = this.grd.ActualWidth;
PrintDocument pd = new PrintDocument();
pd.PrintPage += (s, args) =>
{
var h = args.PrintableArea.Height;
var w = args.PrintableArea.Width;
//如果宽度不够,则要压缩宽度
if (aw > w) gd.ScaleX = w / aw;