问题描述
各位大虾,我的问题如下:我用了拷屏的方法,然后打印剪贴板内容,代码如下:PublicSubbtnPrint_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnPrint.ClickOnErrorResumeNextSendKeys.SendWait("%{PRTSC}")IfPRI.PrinterSettings.IsValidThenPRI.PrinterSettings.Copies=1PRI.DefaultPageSettings.Landscape=TruePRI.Print()EndIfEndSubPrivateSubPRI_PrintPage(ByValsenderAsSystem.Object,ByValeAsSystem.Drawing.Printing.PrintPageEventArgs)HandlesPRI.PrintPageDimmclipboardDataObjectAsIDataObject=Clipboard.GetDataObjectDimmBitmapAsBitmapIfmclipboardDataObject.GetDataPresent(DataFormats.Bitmap)ThenmBitmap=mclipboardDataObject.GetData(DataFormats.Bitmap)e.Graphics.DrawImage(mBitmap,PRI.DefaultPageSettings.Bounds.Left,PRI.DefaultPageSettings.Bounds.Top)EndIfEndSub我在一台电脑上用,打印都正常,用了另外一台电脑(不一样的打印机),打出来经常是几页相同的纸,5页,7页都有,就是没有偶数页,看打印机任务管理器,也确实有这么多打印任务,我就不明白,这个问题出在哪?我的程序,windows的GDI模块和打印池,还是打印驱动程序?从道理上讲,我认为应该是windows的问题,可是到底什么原因?不知道
解决方案
解决方案二:
是不是你打印机设置的问题呀?
解决方案三:
这个应该是打印的驱动程序兼容问题
解决方案四:
或者是,打印机的默认设置,或者是,打印软件的默认设置问题。再或者是,软件和硬件的配合问题。
解决方案五:
是驱动程序的问题和你这个程序有相关的东西。
解决方案六:
回复数有四个,怎么看不到?
解决方案七:
呵呵,总算看到了我看了windows相关的介绍,打印过程(通过打印池而不是直接发送到打印机)应该是这样的。1,windows确认打印机UI驱动程序(我想应该是确定打印机驱动程序是否存在)2,windows通过打印池客户和GDI生成打印机任务管理器的任务(EMF文件等),这个时候你的应用程序可以自由了。3,打印处理器将EMF文件生成最后的原始数据格式,打印机开始打印。如果是这样的话,我想应该和打印机驱动程序没什么关系,而且我确实在打印机任务管理器中看到很多任务。奇怪的是,用Excel打印报表从来不出现这种问题。我的代码是否有问题呢
解决方案八:
我在PRI_PrintPage方法中增加一句:e.hasmorepages=false不知道是否有用处?
解决方案九:
没遇到过这种情况.