Пустое место в верхней части термопринтера на счетах

#c# #printing #crystal-reports #report

#c# #печать #crystal-отчеты #Сообщить

Вопрос:

Я пытаюсь создать KOT для своего POS-приложения, все работает нормально, но по какой-то причине в верхней части счета есть странное пространство, размер этого пространства фиксирован 15 см. Если я распечатал отчет из Main Report View используемой Visual Studio без запуска приложения, он печатается нормально безпробелы, но если я пытаюсь распечатать его из запущенного приложения, я всегда получаю пустое пространство размером 15 см вверху, я попытался распечатать счет из другого приложения, которое я создаю до его обычной печати. Я пробовал разные способы при поиске в Интернете, но не смог решить проблему.

Я использую этот код для печати счета:

             KOT Rtp = new KOT();
        if (Rtp.DataDefinition.ParameterFields.Count > 0)
        {
            foreach (ParameterFieldDefinition crDef in Rtp.DataDefinition.ParameterFields)
            {
                if (crDef.ReportName == string.Empty)
                {
                    object objValue = "16";
                    Rtp.SetParameterValue(crDef.ParameterFieldName, objValue);
                }
            }
        }

        ConnectionInfo crConn = new ConnectionInfo();
        crConn.ServerName = Properties.Settings.Default.server;
        crConn.DatabaseName = Properties.Settings.Default.database;
        crConn.UserID = Properties.Settings.Default.user;
        crConn.Password = Properties.Settings.Default.password;
        // get the Report Tables
        Tables crTables = Rtp.Database.Tables;

        // get the Report Tables
        _ = Rtp.Database.Tables;
        for (int i = 0; i < crTables.Count; i  )
        {
            Table crTable = crTables[i];
            TableLogOnInfo tblInfo = crTable.LogOnInfo;
            tblInfo.ConnectionInfo = crConn;
            crTable.ApplyLogOnInfo(tblInfo);
        }
        // then display the Report - here I am using a Crystal Reports Viewer in a Windows Form
        //var frm = new Form1();
        //frm.CrystalReportViewer1.ReportSource = Rtp;
        //frm.ShowDialog();

        CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions popt = new CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions();
        popt.PrinterName = "SGT-88IV Printer(2)";
        Rtp.ReportClientDocument.PrintOutputController.PrintReport(popt);
 

вот счет, который я получаю при печати из приложения :

введите описание изображения здесь

и вот счет, который я получаю при печати из предварительного просмотра основного отчета в visuals studio : введите описание изображения здесь

и вот моя настройка страницы: введите описание изображения здесь

Ответ №1:

Я решил свою проблему, перейдя в настройки принтера и изменив формат бумаги в дополнительных параметрах с Printer 80 (72mmx800mm) на Printer 80 (72mmx210mm) . введите описание изображения здесь