У меня есть несколько отчетов, которые разработаны в ландшафтном режиме, которые отлично работают при предварительном просмотре и печати с помощью элемента управления VB6 Crystal.Печать отчета о кристалле в ландшафте до конкретного принтера
Меня недавно попросили, чтобы принтер быть изменен так, добавлен код для перечисления принтеров и установить PrinterDriver
, PrinterName
и PrinterPort
свойства элемента управления. Хотя это хорошо работает для отчетов о портрете, указание чего-либо, кроме принтера по умолчанию, заставляет средство просмотра отчетов принудительно выводить отчет в ориентацию по умолчанию для выбранного принтера.
Printer.Orientation
до vbPRORLandscape
не влияет на кристалл, поскольку он использует собственную печатную поверхность. Зритель Кристалл также не имеет возможности указать ориентацию (он установлен в ландшафт в конструкторе)
Microsoft KB198901 имеет образец кода, чтобы изменить ориентацию по умолчанию (после изменения использовать PRINTER_ACCESS_USE
), но это влияет ничего, что бы получить доступ этот принтер, пока он не будет снова изменен.
Есть ли способ печати на конкретном принтере И сохранить ландшафтную ориентацию отчета, не изменяя при этом временную конфигурацию системы принтера в альбомной ориентации на время использования элемента управления?
Отчеты сконструированы в Crystal 4.6 и печатаются с помощью средства управления зрителем Crystal 8.0.
Мне будет интересен лучший ответ, чем «кеш-настройки и восстановление после использования». Однако я считаю, что эти настройки сохраняются и используются на уровне очереди печати, который является глобальным (по одному для каждого принтера для всего ПК). Я был бы рад показать, что это неверно! – Bob77