xp下wpf打印框出现乱码

问题描述

wpf调用系统打印,打印部分源码如下PrintDialogpDialog=newPrintDialog();pDialog.PageRangeSelection=PageRangeSelection.AllPages;pDialog.UserPageRangeEnabled=true;if(pDialog.ShowDialog()==true){using(XpsDocumentxpsDocument=newXpsDocument(printDocFile,FileAccess.ReadWrite)){FixedDocumentSequencefixedDocSeq=xpsDocument.GetFixedDocumentSequence();pDialog.PrintDocument(fixedDocSeq.DocumentPaginator,"证书打印");}}

现象:1.win7/8都不出问题。2.xp下第一次打印没问题,第二次就会出现打印框乱码。3.出问题的时候,影响了输入法(搜狗输入法).第一次第二次第二次错误导致输入法的乱码请问各位如何解决这个问题,小弟谢了先。

解决方案

解决方案二:
http://technet.microsoft.com/zh-cn/magazine/system.windows.controls.printdialog.showdialog(VS.90).aspx先去掉using试试看。可能XP和Win7/8的.NET版本差异吧
解决方案三:
引用1楼mengfeiX的回复:

http://technet.microsoft.com/zh-cn/magazine/system.windows.controls.printdialog.showdialog(VS.90).aspx先去掉using试试看。可能XP和Win7/8的.NET版本差异吧

去点using还是错,话说去不去掉应该没得影响吧。
解决方案四:
我也遇到了和你一样的问题,第一次正常,打印完后在点开就是乱码,和你发的图一模一样,请问你后来怎么解决了?
解决方案五:
我也遇到这个错误了,有解决方案吗?
解决方案六:
我也碰到过这样的问题~~没有用XpsDocumentxpsDocument进行打印而是换了一种方式:varprintDialog=newPrintDialog();printDialog.UserPageRangeEnabled=true;try{if(printDialog.ShowDialog()==true){printDialog.PrintTicket.PageBorderless=System.Printing.PageBorderless.None;DocumentPaginatorMyDocumentPaginator=((IDocumentPaginatorSource)fixedDoc).DocumentPaginator;MyDocumentPaginator.PageSize=newSize(96*18.8,MyPageHList.Max());if(printDialog.PageRangeSelection==PageRangeSelection.UserPages){varxdw=System.Printing.PrintQueue.CreateXpsDocumentWriter(printDialog.PrintQueue);varvtxd=(System.Windows.Xps.VisualsToXpsDocument)xdw.CreateVisualsCollator();for(inti=printDialog.PageRange.PageFrom-1;i<printDialog.PageRange.PageTo;i++){varv=MyDocumentPaginator.GetPage(i).Visual;varcv=newContainerVisual();cv.Children.Add(v);vtxd.Write(cv,printDialog.PrintTicket);cv.Children.Remove(v);}vtxd.EndBatchWrite();}else{printDialog.PrintDocument(MyDocumentPaginator,"打印");}}}catch(Exceptionex){MessageBox.Show(ex.Message);return;}

解决方案七:
将调用的资源都释放掉。

时间: 2024-08-02 14:43:29

xp下wpf打印框出现乱码的相关文章

XP系统下打印机打印文字出现乱码怎么解决

  XP系统下打印机打印文字出现乱码怎么解决 1.在左侧程序里选择"控制面板",打开窗口,双击"字体"图标(在打开的对话框中保证打印机已正常安装).图片显示在最下一排,第二个. 2.假如所打印的字体没有安装,可选择"文件F(在窗口的左上角)",打开下属栏,选择"安装新字体"选项,在打开的"添加字体"对话框中选择字体所在路径,就可以进行字体的安装了. 3.双击选中的字体图标,在打开的对话框中单击"打

XP系统电脑打印文字字体出现乱码的解决办法

  XP系统电脑打印文字字体出现乱码的解决办法          1.在左侧程序里选择"控制面板",打开窗口,双击"字体"图标(在打开的对话框中保证打印机已正常安装).图片显示在最下一排,第二个. 2.假如所打印的字体没有安装,可选择"文件F(在窗口的左上角)",打开下属栏,选择"安装新字体"选项,在打开的"添加字体"对话框中选择字体所在路径,就可以进行字体的安装了. 3.双击选中的字体图标,在打开的对话框

xp系统下打印机输出字体全部乱码如何解决

  我们在日常办公中,经常会使用到打印操作.不过,不少windowsxp系统用户有时也会遇到打印输出的文字字体全部是乱码的问题.这是怎么回事呢?针对此问题,现笔者就分享打印输出字体全部乱码的具体应对措施. 具体如下: 1.在xp系统上点击"开始--控制面板--字体". 2.在打开的"字体"窗口中单击"打印"按钮,看输出的打印结果是否正常. 3.如果打开不正常,是该字体已损坏,需要对此字体进行重新安装. 4.用另外一种字体,对所选中的文件进行打印.

XP系统下U盘文件出现乱码如何解决

  XP系统下U盘文件出现乱码如何解决          一:杀毒软件测试 1.打开360杀毒软件,这里有很多不同的检测方式; 2.我们只是需要检测U盘,所以点击指定位置扫描就可以了,选择需要检测的U盘; 3.然后点击扫描就可以检测是否中毒了.检测完后,如果有病毒,那就正常杀毒就可以了. 二:扩容U盘检测 1.什么是扩容U盘我就不解释了,扩容U盘还是很好辨别的,如果你存储文件时,如果文件超多多少M就会出现乱码,那U盘是扩容盘得几率就比较大了,检测是否为扩容U盘有2种方法,第一种比较简单,用U盘存

关于WPF程序在win7系统下不能打印控件的问题

问题描述 RT,最近到客户现场实施发现WPF程序在win7系统下打印控件为空,也就是打印机打印出来的是白纸,啥都没有,在win8系统下可以打印内容,有人遇到过这个问题么? 解决方案 解决方案二:没遇到过.你可以试试写一个最简单的wpf程序,为用户更新一下打印机驱动,或者给打印机换墨.难道你的wpf程序在开发测试中就从来没有在win7下测试过,跑到用户那里测试么?解决方案三:如果你们的程序在公司和别的用户那里在win7系统下已经测试过,作为一个技术服务人员,应该想到的是有问题的那个范围的东西,纠结

Windowsxp系统下如何打印CAD图纸

Windowsxp系统下如何打印CAD图纸   具体如下: 1.找到需要打印的CAD图纸,双击打开. 2.点击"文件--打印",或直接使用"Ctrl+P"快捷键调出打印框. 3.选择共享的打印机,进行规定需要的操作设置,为了快捷打印,可设置"页面设置"为上一次打印. 4.在选择好的打印机边上的点击"特性".设置"自定义特性",总是从A3口进纸,都打印A3的情况下. 5.经过第一次打印后,以后每次选择&quo

PHP在XP下IIS和Apache2服务器上的安装

最近,有许多朋友问我在WindowsXp下PHP的安装过程,正好最近我在自己的机器上成功的以模块化的方式安装了PHP4.23.既然这么多朋友需要,我就以最常见的IIS和Apache服务器为例,把PHP在WindowsXP下的安装过程写出来吧,希望能对要安装PHP的朋友有点帮助.如果不加特殊说明,以下的介绍同时也适用于Win2000版本. 一.概述: 在安装之间,你必须先弄懂PHP安装的两种不同模式,一种是Cgi模式(CGI executable),另一种是模块化安装方式.可以这样来区别:在CGI

NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现(二)

打印|对话框|页面 前篇说了.NET环境下有关打印页面设置.打印机设置.打印预览对话框的实现,现在到了我们应用它们的时候了. 我们需要做下面的一些事情: 1.将上篇中写的程序输出类型改为类库并编译成PrinterPageSetting.dll; 2.建立C#或VB.net项目,并在项目的引用处添加引用,在弹出的对话框的.NET标签中浏览并选择PrinterPageSetting.dll: 3.在默认窗口Form1上增加一个TextBox文本框控件,默认名TextBox1(实际项目中建议采用命名及

Windows XP下刻录光盘

一.基本设置 Windows XP能够识别当前很多品牌的刻录机,因此在安装好刻录机后系统会自动识别.要想更好地使用Windows XP的刻录功能,在使用前还需要对刻录机进行相应的设置.在我的电脑上单击右键,在随后弹出一个快捷菜单中选择"属性",随后弹出一个"CD-RW驱动程序"对话框,选择"刻录"标签项(如图)即可进行设置. 图1 1.启用刻录功能 勾选"在这个设备上启用CD录制"复选框,即可启用刻录机的光盘刻录功能,如果不勾