Принтеры VB6, ActiveReports и Ricoh: вращение страницы? - PullRequest
0 голосов
/ 12 августа 2011

У меня есть Зверь программы, написанной на VB6.Он использует ActiveReports для генерации писем.

Отчеты обрабатываются в цикле;со строительными циклами и (целой лототой) вложенными операторами 'if' и 'case'.Fugly!

Отчеты отправляются на принтер следующим образом:

Function PrintIt(ltrobj as Object)

    Set ltrobj = MyARdocument '(.Dsr file)
    ltrobj.txtfield1 = strVerbage           'This string was populated somewhere else
    ltrobj.Printer.DisplayProgressDialog = False
    ltrobj.PrintReport False

End Function

Теперь вот странная часть: страницы физически выходят из принтера, поворачивая на 90 градусов каждую итерацию цикла.Что еще более странно - это происходит только для моего приложения VB6 - другие документы Word, отчеты, пакетные задания - все, что получается нормально.

Итак, первая страница выглядит как обычно,заголовок первый (указывает на север).Вторая страница выходит вбок (заголовок указывает на запад).Третий выходит из принтера, как первый, четвертый выходит, как второй, и снова включается ...

Принтер: Ricoh Aficio MP5000

Не могу найти настройкуна принтере или свойстве в ActiveReports, которое управляет этим.

Будем весьма благодарны за любые идеи, помощь или общие указания!

Спасибо,

Джейсон

1 Ответ

0 голосов
/ 14 августа 2011

В ActiveReports отсутствует настройка «вращения». Самые близкие вещи, которые могут повлиять на это, будут размер и ориентация страницы, но в худшем случае я ожидаю, что они будут переворачиваться взад и вперед, а не поворачивать страницу. Я бы попробовал сделать несколько вещей:

  1. Отслеживание настроек принтера и страницы, связанных с ориентацией и размером страницы, при печати отчета.
  2. Попробуйте выполнить печать на другом принтере, чтобы узнать, происходит ли это на всех принтерах или только на этом.
  3. Предварительный просмотр отчетов на экране и проверка их поворота в предварительном просмотре или нет (или экспорт их в PDF с отчетом. Экспорт (...) и проверка их поворота).

Для отслеживания настроек страницы вы должны сделать это в нескольких местах. Один на принтере, а другой на каждой странице (или холсте) в отчете. Существует также ActiveReport.PrintWidth (ширина отчета, а не страниц), которая также может иметь значение. Поэтому перед печатью каждого отчета попробуйте найти следующие значения:

report.PrintWidth
' the default settings for the report
report.PageSettings.TopMargin
report.PageSettings.RightMargin
report.PageSettings.BottomMargin
report.PageSettings.LeftMargin
' actual printer's current settings:
report.Printer.PaperSize
report.Printer.PaperHeight
report.Printer.PaperWidth
report.Printer.Orientation
' settings for a specific page:
for each page in report.Pages:
  report.Pages(...).Width
  report.Pages(...).Height
  report.Pages(...).Orientation

Кстати: ActiveReports COM Help - здесь .

Если предварительный просмотр / тестирование в PDF кажется нормальным, я бы сосредоточился на самом принтере. То же самое для печати на другом принтере, очевидно. В противном случае сфокусируйтесь на настройках ActiveReports.

Надеюсь, это поможет

Scott Willeke
GrapeCity
...