Я использую старый код VB6, который, кажется, прекрасно работает на рабочем столе Win7. В какой-то момент код использует объект Printer
, выполняя такие вещи ...
Printer.font.Bold = True
Printer.CurrentX = xpos
Printer.CurrentY = ypos
Printer.Print LinesToPrintArr(LineNum, i)
Страницы печатаются в дуплексном режиме и переплетаются по длинному краю (вверху), поэтому вы переворачиваете страницы, будучи привязанными по длинному краю. Все напечатано пейзажем. В Windows 7 это работает без проблем. Однако недавно мы начали использовать такие ОС, как Windows Server 2012R2 или новее. По какой-то причине первая страница идеальна, а вторая (сзади первой) напечатана вверх ногами.
Примечание. Созданное приложение фактически вызывает COM-объект для выполнения
печать, поэтому запуск приложения (работающего на машине win10)
в режиме совместимости (win7) при вызове COM-объекта на сервере
(2016) Не думаю, что это поможет.
Пример того, как это должно выглядеть на всех версиях ОС ...
![enter image description here](https://i.stack.imgur.com/5PZtQ.png)
Пример того, как это выглядит на серверной ОС (что неверно) ...
![enter image description here](https://i.stack.imgur.com/NldRo.png)
Кто-нибудь знает, почему это происходит на новой серверной ОС (например, на сервере 2016), а не на Windows 7? Есть ли контрольный файл или другой файл поддержки, который я мог бы понизить, который Win7 использует, чтобы сделать эту функцию правильным способом? Я предполагаю, что это связано с объектом принтера vb6, используемым внутри vb6.