Изменение настроек принтера с помощью vb6? - PullRequest
1 голос
/ 21 апреля 2010

У меня проблема, когда моя программа установлена ​​на другом компьютере, где настройки принтера отличаются, когда мой отчет с данными принимает формат Letter 8,2 * 11, потому что, когда настройки принтера отличаются, отчет с данными не отображается и выдает ошибку, говоря, что ширина страницы больше ширины бумаги, кто-нибудь знает, как решить эту проблему.

Я попробовал этот код, но он не работал

Printer.PaperSize = vbPRPSLetter

Ответы [ 3 ]

1 голос
/ 22 апреля 2010

-Можно просто переключиться на нестандартный формат бумаги?

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

- Вы уверены, что ошибка не связана до максимальной ширины печати отчет сам? Многие принтеры имеют максимальную ширину печати это заставляет 1/4 "поля на любом сторона бумаги. Что в вашем случае заставляет вашу область печати быть 7,7 "макс. Самый быстрый способ проверка будет временно установлена печать от широкого до более низкого значения и посмотрим, работает ли это.

-Другой возможностью могут быть разрешения на принтер. Если это общий сетевой ресурс, он может быть заблокирован и отклонять изменения настроек бумаги и выдавать неточную ошибку.

1 голос
/ 22 апреля 2010

Ознакомьтесь со статьей базы знаний Майкрософт ИСПРАВЛЕНИЕ: Сообщение об ошибке «Ширина отчета больше ширины бумаги» при отображении отчета с данными в альбомной ориентации

При использовании метода Show Data Отчет для предварительного просмотра отчета, страница ориентация по умолчанию по умолчанию настройки принтера на локальном компьютер. Следовательно, если ориентация принтера по умолчанию Настройки установлены в Портрет стандартная бумага Letter и ваш отчет ширина более 8,5 дюймов в ширину, возникает следующая ошибка: отчет Ширина больше ширины бумаги.

Похоже, что решение устанавливает Orientation перед использованием отчета данных. Измените DataReport1 на имя вашего отчета с данными.

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

РЕДАКТИРОВАТЬ Еще одно предложение: Microsoft предлагает бесплатную библиотеку DLL, которая позволяет изменять настройки по умолчанию для принтера. Вы можете попробовать использовать эту бесплатную DLL в своем проекте, а затем сделать что-то вроде этого кода ниже, прежде чем использовать отчет с данными. Microsoft говорит, что «эта DLL особенно полезна при работе с отчетом данных , который читает ориентацию принтера по умолчанию перед отображением или печатью отчета».

  Set obj = New PrinterControl
  obj.ChngOrientationLandscape
0 голосов
/ 24 июля 2016

Чтобы изменить ориентацию принтера во время выполнения, нам нужно установить VB6 Service Pack 6

Использовать этот код

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

Это будет нормально работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...