2010-04-21 87 views
1

當我的程序安裝到另一臺計算機時,我的計算機出現問題,它的打印機首選項不同,我的數據報告接受Letter尺寸爲8.2 * 11英寸,因爲當打印機首選項不同時,數據報告不能顯示並給出一個說明頁面寬度大於紙張寬度的錯誤,有誰知道如何解決這個問題。使用vb6更改打印機首選項?

我想這代碼,但沒有奏效

Printer.PaperSize = vbPRPSLetter

回答

1

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

當使用數據 的顯示方法報告預覽報告,頁面 方向默認爲本地 計算機上的默認 打印機設置。因此,如果默認打印機 設置 方向設置爲縱向的 標準Letter紙張,您的報告 寬度大於8.5英寸寬,出現 以下錯誤:報告 寬度大於紙的寬度。

在使用數據報告之前,解決方案似乎是設置Orientation。將DataReport1更改爲您的數據報告的名稱。

DataReport1.Orientation = rptOrientLandscape 
DataReport1.Show 

編輯另一個建議:微軟offer免費的DLL,它允許您更改默認設置的打印機。您可以嘗試在您的項目中使用該免費DLL,然後在使用數據報告之前執行下面的代碼。微軟說:「在處理數據報告時,此DLL是特別有用,它在顯示或打印報告之前讀取默認的打印機方向。」

Set obj = New PrinterControl 
    obj.ChngOrientationLandscape 
+0

它給了我一個錯誤,說變量沒有定義編譯 – Mahmoud 2010-04-21 23:04:13

+0

@Mahmoud將'DataReport1'更改爲您的數據報告的名稱。 – MarkJ 2010-04-22 15:11:58

+0

我知道我改變了它,但我如何將DLL添加到軟件,因爲我想註冊它在我的Windows 7,但我不斷收到錯誤,當我按照微軟的方法,我不斷收到錯誤,什麼做你建議 – Mahmoud 2010-04-23 01:08:40

1

- 您可以切換到自定義紙張尺寸嗎?

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

- 你肯定錯誤是不相關 到 報告本身的最大打印寬度?許多打印機的最大打印寬度爲 ,這會強制在紙張的任一面上打印1/4「頁邊距。在您的情況下,這會強制打印區域最大爲7.7英寸。最快的方法來 檢查將暫時設置 打印寬度較低的值和 看看它是否工作。

- 另一種可能性可能是打印機的權限。如果它是一個共享的網絡資源,它可能會被鎖定,拒絕對紙張設置所做的更改並丟失不準確的錯誤信息。

+0

嘿那裏,報告很好只打印時,我改變我的打印機偏好信,然後datareport很好打開,我試着你的方法我一直gettting'printer.papersize = 256'錯誤 – Mahmoud 2010-04-23 01:23:43

0

要在運行時更改打印機的方向,我們需要安裝VB6服務包6

使用此代碼

DataReport1.Orientation = rptOrientLandscape 
DataReport1.Show 

這將正常工作

相關問題