使用vb6更改打印机首选项?

使用vb6更改打印机首选项?,vb6,printing,Vb6,Printing,当我的程序安装到另一台计算机上时,我遇到了一个问题,在另一台计算机上,它的打印机首选项不同,我的数据报告接受字母大小8.2*11英寸,因为当打印机首选项不同时,数据报告将不会显示,并给出一个错误,说明页面宽度大于纸张宽度,有人知道如何解决这个问题吗 我试过这个代码,但没用 Printer.PaperSize=vbPRPSLetter查看Microsoft知识库文章 使用数据显示方法时 报告要预览报告,请单击页面 方向默认为默认值 本地计算机上的打印机设置 电脑。因此,如果 默认打印机的方向 “设

当我的程序安装到另一台计算机上时,我遇到了一个问题,在另一台计算机上,它的打印机首选项不同,我的数据报告接受字母大小8.2*11英寸,因为当打印机首选项不同时,数据报告将不会显示,并给出一个错误,说明页面宽度大于纸张宽度,有人知道如何解决这个问题吗

我试过这个代码,但没用


Printer.PaperSize=vbPRPSLetter

查看Microsoft知识库文章

使用数据显示方法时 报告要预览报告,请单击页面 方向默认为默认值 本地计算机上的打印机设置 电脑。因此,如果 默认打印机的方向 “设置”设置为“纵向” 标准信纸和你的报告 宽度超过8.5英寸宽, 出现以下错误:报告 宽度大于纸张宽度

解决方案似乎是在使用数据报告之前设置方向。将
DataReport1
更改为数据报告的名称

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show
  Set obj = New PrinterControl
  obj.ChngOrientationLandscape

编辑另一个建议:Microsoft提供一个免费的DLL,允许您更改打印机的默认设置。您可以尝试在项目中使用该免费DLL,然后在使用数据报告之前执行以下类似代码的操作。Microsoft表示,“此DLL在处理数据报告时特别有用,它在显示或打印报告之前读取默认打印机方向。”


-你能切换到定制的纸张尺寸吗

Printer.PaperSize = 256
Printer.Width = 11808  '(8.2 * 1440)
Printer.Height = 15840 '(11 * 1440)
-是否确定错误与 最大打印宽度 报告本身?许多打印机具有最大打印宽度 这将使两个屏幕上的边距均为1/4英寸 纸张的侧面。在您的情况下,这会迫使您的可打印区域最大为7.7英寸。最快的方式 检查将被临时设置 将打印宽度设置为较低的值,然后 看看它是否有效


-另一种可能是对打印机的权限。如果是共享网络资源,它可能被锁定,拒绝对纸张设置的更改,并抛出不准确的错误消息。

要在运行时更改打印机方向,我们需要安装VB6 Service pack 6

使用此代码

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

这将很好地工作

它给了我一个错误,表示变量未定义compile@Mahmoud将
DataReport1
更改为您的数据报告的名称。我知道我已更改了它,但我不知道如何将dll添加到软件中,因为我试图在windows 7上注册它,但不断收到错误,当我使用微软的方法时,我不断地得到一个错误,你会怎么做suggest@Mahmoud关于“未定义变量”:是否已安装Visual Basic 6 service pack 6?如果不是,我建议您安装service pack。关于注册DLL时的错误。您是否以管理员身份登录?您能告诉我们确切的错误消息吗?我确实将我的visual basic 6更新为service pack 6,但我仍然收到错误消息,关于注册dll时显示的错误是
模块c:/users/nobody/Desktop/pageset.dll已加载,但对dllregisterserver的调用失败,错误代码为0x80004005
嘿,只有当我将打印机首选项更改为字母时,报告才能正常打印,然后数据报告就会打开,我尝试了您的方法。我一直在
printer.papersize=256