Dave the Golfer Ответов: 1

Как обеспечить печать формы на всех типах принтеров


Я написал приложение, которое требует от меня распечатать некоторые формы либо на принтере по умолчанию, либо в формате PDF.
На моем компьютере код успешно печатается на принтере Epsom Stylus Photo R3000 или в формате PDF с помощью Microsoft Print to PDF .
Однако когда я загружаю код на три других ноутбука, включая свой собственный, формы печатаются усеченными, а последние несколько строк отсутствуют. (Как принтер, так и PDF-принтер)

Код, который я использую, таков ;
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles PrtAvlBut.Click
        'Prints availability form when button clicked
        PrtAvlBut.Visible = False
        Array.ForEach(Me.Controls.OfType(Of TextBox).ToArray, Sub(tb As TextBox) tb.DeselectAll())
        PrintForm1.PrinterSettings.DefaultPageSettings.Margins = New System.Drawing.Printing.Margins(0, 0, 0, 0)
        PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.Scrollable)

        PrtAvlBut.Visible = True
        Me.Close()
    End Sub

Хотя форма четко отображается на экране, предварительный просмотр показывает усеченную форму.

Мой исходный код использовал ClientAreaOnly вместо Scrollable, который печатает только ту часть формы, которая отображается на экране. Поскольку у второго пользователя был маленький экран с низким разрешением, было видно только две трети формы, но она печаталась правильно, то есть печатала две трети, показанные на экране.

Я понятия не имею, с чего начать поиски решения.

Что я уже пробовал:

Я протестировал свое последнее решение с более низким разрешением экрана, чтобы имитировать второй ноутбук пользователя. Хотя я не мог видеть всю форму, она все равно печаталась правильно, то есть вся форма.
Я также установил все поля на "0", на всякий случай, если это было причиной неудачи, но без успеха.

Richard MacCutchan

Вам нужно проверить характеристики выбранного принтера и выбранный размер страницы, чтобы узнать, сколько эффективного места есть на каждой странице.

Dave the Golfer

Ричард
Спасибо, я разберусь с этим. Теперь я добавил строку кода для определения формата бумаги. Нужно проверить на компьютере моего коллеги, что я надеюсь сделать в течение следующего дня или около того.

Dave the Golfer

К сожалению, установка размера страницы не решила проблему. Я думал, что печать в PDF работает, но это оказалось неверным, так как печать PDF была такой же, как и печать непосредственно на HP Deskjet 2540.
Нужно как-то связаться с HP, так как я не являюсь владельцем HP.

Dave the Golfer

К сожалению, установка размера страницы не решила проблему. Я думал, что печать в PDF работает, но это оказалось неверным, так как печать PDF была такой же, как и печать непосредственно на HP Deskjet 2540.

Поскольку это проблема с обоими принтерами, я предполагаю, что принтер HP-это не проблема. Следовательно, он должен находиться внутри ноутбука! Понятия не имею, с чего начать поиски!!!

Dave the Golfer

Глядя дальше на проблему, я изменил разрешение дисплея на то же, что и мой конечный пользователь (1366x768). С помощью этой настройки я могу видеть только часть формы , фактически ту часть, которую мой конечный пользователь печатает на принтере или создает в формате PDF. Что говорит о том, что команда SCROLLABLE, похоже, не работает на его ноутбуке.

1 Ответов

Рейтинг:
8

Dave the Golfer

Нужно загрузить некоторые предварительные требования Microsoft.
Вопрос закрыт