У меня есть проблема, когда моя программа установлена на другом компьютере, где его установка принтера отличается, где мой отчет о данных принимает размер Буквы 8.2 * 11 в, потому что, когда установка принтера отличается, данные сообщают хорошо не, показывают, и дает ошибку при высказывании, что страница width больше, чем бумажная ширина, делает любой знает, как решить эту проблему.
я попробовал этот код, но он не работал
Printer.PaperSize = vbPRPSLetter
Ознакомьтесь со статьей базы знаний Microsoft ИСПРАВЛЕНИЕ: Сообщение об ошибке «Ширина отчета больше, чем ширина бумаги» при отображении отчета с данными в альбомной ориентации
При использовании метода Show отчета данных для предварительного просмотра отчета, ориентация страницы по умолчанию соответствует настройкам принтера по умолчанию на локальном компьютере. Таким образом, если для ориентации настроек принтера по умолчанию задано значение "Книжная" для стандартной бумаги Letter, а ширина вашего отчета больше 8,5 дюймов, { {1}} возникает следующая ошибка: ширина отчета больше ширины бумаги.
Решением, похоже, является установка Ориентация
перед использованием отчета с данными. Измените DataReport1
на имя вашего отчета с данными.
DataReport1.Orientation = rptOrientLandscape
DataReport1.Show
РЕДАКТИРОВАТЬ Другое предложение: Microsoft предлагает бесплатную DLL, которая позволяет изменять настройки по умолчанию для принтера. Вы можете попробовать использовать эту бесплатную DLL в своем проекте, а затем выполнить что-то вроде этого кода ниже, прежде чем использовать отчет с данными. Microsoft заявляет, что «эта DLL особенно полезна при работе с отчетом данных , который считывает ориентацию принтера по умолчанию перед отображением или печатью отчета."
Set obj = New PrinterControl
obj.ChngOrientationLandscape
-Можете ли вы просто переключиться на нестандартный размер бумаги?
Printer.PaperSize = 256
Printer.Width = 11808 '(8.2 * 1440)
Printer.Height = 15840 '(11 * 1440)
-Вы уверены, что ошибка не связана с максимальным значением ширина печати самого отчета ? Многие принтеры имеют максимальную ширину печати , при которой поля в 1/4 дюйма на каждой стороне бумаги. В вашем случае максимальная ширина области печати составляет 7,7 дюйма. Самый быстрый способ проверки - это временно установить ширину печати на меньшее значение и посмотреть, работает ли это.
-Другой возможностью могут быть разрешения для принтера. Если это общий сетевой ресурс, он может быть заблокирован и отклоняет изменения в настройках бумаги и выдает неточное сообщение об ошибке.