我使用Silverlight开发了应用程序,现在我需要实现打印,我已经使用过了 PrintDocument类,它看起来像这样:
PrintDocument printDocument = new PrintDocument();
printDocument.PrintPage += new EventHandler<PrintPageEventArgs>(printDocument_PrintPage);
printDocument.Print("My docuement");
但我遇到了问题 - 如果有20-30页需要花费很多时间,如果我打开打印机的队列,则表明10页打印的打印尺寸约为1.2GB。我试图打印画布(800 * 1000)只有一个文本块,文字像“测试打印”。
我正在使用Silverlight 5。
有人遇到过这样的问题吗?有什么方法可以避免吗?
答案 0 :(得分:5)
我的猜测是要打印的内容是作为位图而不是更有效的矢量格式发送的。
这可能是由于司机造成的。如果打印机的驱动程序无法将Silverlight图形转换为矢量,则可以将其打印为位图。
我尝试force Silverlight into using Vectors,但我的打印机不支持PostScript。 所以我切换到一台打印机,突然它只是千字节。
我只看到两种避免位图打印的方法:
获取PostScript打印机或
在服务器上创建一个打印机友好文档(PDF,Word,文本),允许客户端手动下载和打印。