.NET PrintDocument - текст обрезается - PullRequest
2 голосов
/ 28 октября 2009

У меня есть приложение (C #, .NET 3.5), которое пишет квитанции. Они обычно печатаются на маленьком чековом принтере с .NET PrintDocument. Проблема в исключительных случаях, когда я хочу печатать на обычном принтере. В этих случаях текст обрезается. Я хочу иметь чек или переключатель, чтобы предотвратить это, но по-прежнему сохраняю узкие поля на маленьком принтере.

Как лучше всего справиться с этим? Могу ли я сделать это, не касаясь генерации графики?

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

После того, как вы установите принтер в PrintDocument, вы можете взглянуть на настоящий PaperSize, используя значение:

PrintDocument.PrinterSettings.DefaultPageSettings.PaperSize

Или, может быть:

PrintDocument.PrinterSettings.PaperSizes

0 голосов
/ 11 февраля 2019

Моя проблема была в том, что я устанавливал printerDocument.DefaultPageSettings.PaperSize.

Вместо этого я рекомендую это

private PrintDocument _printDocument = new PrintDocument();
private int _checkPrint;
public Form1()
{
    InitializeComponent();
    _printDocument.BeginPrint += _printDocument_BeginPrint;
    _printDocument.PrintPage += _printDocument_PrintPage;
}

private void btnPrint_Click(object sender, EventArgs e)
{
    PrintDialog printDialog=new PrintDialog();
    if (printDialog.ShowDialog() == DialogResult.OK)
        _printDocument.Print();
}

private void _printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
    // Print the content of RichTextBox. Store the last character printed.
    _checkPrint = rchEditor.Print(_checkPrint, rchEditor.TextLength, e);

    // Check for more pages
    e.HasMorePages = _checkPrint < rchEditor.TextLength;
}

private void _printDocument_BeginPrint(object sender, PrintEventArgs e)
{
    _checkPrint = 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...