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

时间:2010-04-21 19:05:30

标签: vb6 printing

当我的程序安装到另一台计算机时出现问题,其打印机首选项不同,我的数据报告接受字母大小为8.2 * 11,因为当打印机首选项不同时,数据报告不会显示和给出一个错误,说页面宽度大于纸张宽度,是否有人知道如何解决这个问题。

我试过这段代码,但它没有用

Printer.PaperSize = vbPRPSLetter

3 个答案:

答案 0 :(得分:1)

查看Microsoft知识库文章FIX: Error Message "Report Width Is Larger Than the Paper Width" When Showing Data Report in Landscape

  

使用Show方法的数据   报告预览报告,页面   orientation默认为默认值   本地的打印机设置   电脑。因此,如果   默认打印机的方向   设置设置为纵向   标准信纸和您的报告   宽度超过8.5英寸宽,   发生以下错误:报告   宽度大于纸张宽度。

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

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

编辑另一个建议:Microsoft offer一个免费的DLL,允许您更改打印机的默认设置。您可以尝试在项目中使用该免费DLL,然后在使用数据报告之前执行以下代码。微软称“这个DLL在处理数据报告时非常有用,它在显示或打印报告之前读取默认的打印机方向”。

  Set obj = New PrinterControl
  obj.ChngOrientationLandscape

答案 1 :(得分:1)

- 您只需切换到自定义纸张尺寸吗?

Printer.PaperSize = 256
Printer.Width = 11808  '(8.2 * 1440)
Printer.Height = 15840 '(11 * 1440)

- 确定错误无关 达到最大印刷宽度 报告本身?许多打印机具有最大打印宽度 它会强制增加1/4“的边距 一面纸。在您的情况下,强制您的可打印区域最大7.7“。最快的方式 检查将暂时设置 打印宽到较低的值和 看看它是否有效。

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

答案 2 :(得分:0)

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

使用此代码

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

这样可以正常使用