Как настроить ширину бумаги для термопринтера с помощью чековой печати c #? - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь получить предварительный просмотр перед печатью на чековый / термопринтер, но проблема в том, что предварительный просмотр показывает полную обычную страницу вместо просмотра страницы на термобумаге. Как я могу получить просмотр страницы термобумаги вместо обычной бумаги? Я попробовал следующий код:

   try
        {
            float x, y, lineOffset;
            //Bitmap pbImage = new Bitmap("Images/logo.PNG");
            // Instantiate font objects used in printing.
            Font printFont = new Font("Microsoft Sans Serif", (float)10, FontStyle.Regular, GraphicsUnit.Point); // Substituted to FontA Font

            e.Graphics.PageUnit = GraphicsUnit.Point;

            // Draw the bitmap
            x = 79;
            y = 10;
           // e.Graphics.DrawImage(pbImage, x, y, pbImage.Width - 13, pbImage.Height - 10);

            // Print the receipt text
            lineOffset = printFont.GetHeight(e.Graphics) - (float)3.5;
            x = 10;
            y = 24 + lineOffset;


            e.Graphics.DrawString("              TEL   9999-99-9999       C#2", printFont, Brushes.Black, x, y);
            y += lineOffset;
            e.Graphics.DrawString("       November.23, 2007     PM 4:24", printFont, Brushes.Black, x, y);
            y = y + (lineOffset * (float)2.5);
            e.Graphics.DrawString("apples                       $20.00", printFont, Brushes.Black, x, y);
            y += lineOffset;
            e.Graphics.DrawString("grapes                       $30.00", printFont, Brushes.Black, x, y);
            y += lineOffset;
            e.Graphics.DrawString("bananas                      $40.00", printFont, Brushes.Black, x, y);


            printFont = new Font("Microsoft Sans Serif", 20, FontStyle.Regular, GraphicsUnit.Point);
            lineOffset = printFont.GetHeight(e.Graphics) - 3;
            y += lineOffset;
            e.Graphics.DrawString("Total     $210.00", printFont, Brushes.Black, x - 1, y);

            printFont = new Font("Microsoft Sans Serif", (float)10, FontStyle.Regular, GraphicsUnit.Point);
            lineOffset = printFont.GetHeight(e.Graphics);
            y = y + lineOffset + 1;
            e.Graphics.DrawString("Customer's payment         $250.00", printFont, Brushes.Black, x, y);
            y += lineOffset;
            e.Graphics.DrawString("Change                      $40.00", printFont, Brushes.Black, x, y - 2);

            // Indicate that no more data to print, and the Print Document can now send the print data to the spooler.
            e.HasMorePages = false;

        }
        catch (Exception f)
        {
            MessageBox.Show(f.Message);
        }

А также я должен напечатать логотип изображения, который не печатается с ошибкой, поскольку параметр недействителен.

...