Изменение установки принтера с помощью vb6?

У меня есть проблема, когда моя программа установлена на другом компьютере, где его установка принтера отличается, где мой отчет о данных принимает размер Буквы 8.2 * 11 в, потому что, когда установка принтера отличается, данные сообщают хорошо не, показывают, и дает ошибку при высказывании, что страница width больше, чем бумажная ширина, делает любой знает, как решить эту проблему.

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

Printer.PaperSize = vbPRPSLetter

1
задан Jon Seigel 21 April 2010 в 20:39
поделиться

2 ответа

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

При использовании метода Show отчета данных для предварительного просмотра отчета, ориентация страницы по умолчанию соответствует настройкам принтера по умолчанию на локальном компьютере. Таким образом, если для ориентации настроек принтера по умолчанию задано значение "Книжная" для стандартной бумаги Letter, а ширина вашего отчета больше 8,5 дюймов, { {1}} возникает следующая ошибка: ширина отчета больше ширины бумаги.

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

DataReport1.Orientation = rptOrientLandscape
DataReport1.Show

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

  Set obj = New PrinterControl
  obj.ChngOrientationLandscape
1
ответ дан 3 September 2019 в 01:07
поделиться

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

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

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

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

1
ответ дан 3 September 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: