ahjuxin.net 发表于 2024-9-3 09:32:01

[16.4.1]版本从16.0.2升级到16.4.1后,打印方向就自动变了

本帖最后由 ahjuxin.net 于 2024-9-3 10:03 编辑

      由于16.0.2版本中的document.Print()执行后打印很慢至少需要等待10秒,所以把版本升级到了16.4.1,升级后本来正常的标签自动变成了横向的,并且PrinterSettings里的相关设置也无效。项目是WPF+ActiveReport,使用的静默打印。标签只是显示几个string,一个二维码,没有其它复杂的东西,然后每次执行完document.Print()后,至少还要等待很长时间。具体代码如下:


      
//静默打印
PageReport pageReport = new PageReport(new FileInfo(strFileName));
PageDocument document = new PageDocument(pageReport);

//加载数据
if (aryParams != null && aryParams.Length > 0)
{
   for (int i = 0; i < aryParams.Length; i++)
   {
         pageReport.Report.ReportParameters.DefaultValue.Values.Add(aryParams);
   }
}

//设置打印机
PrinterSettings settings = new PrinterSettings();
settings.ShowPrintDialog = false;
settings.ShowPrintProgressDialog = false;
settings.Printer.DefaultPageSettings.Margins.Bottom = 0;
settings.Printer.DefaultPageSettings.Margins.Left = 0;
settings.Printer.DefaultPageSettings.Margins.Right = 0;
settings.Printer.DefaultPageSettings.Margins.Top = 0;
settings.Printer.PaperSize.RawKind = 0;
settings.UsePrintingThread = true;

//宽高换算成inch 然后再乘以100
var dWidth = pageWidth * 0.3937m * 100;
var dHeight = pageHeight * 0.3937m * 100;
settings.Printer.PaperSize.Width = Convert.ToInt32(dWidth);
settings.Printer.PaperSize.Height = Convert.ToInt32(dHeight);

settings.Printer.PrinterName = strPrinterName;

//DateTime dtStart = DateTime.Now;
for (int i = 0; i < iCopies; i++)
{
   document.Print(settings);

   //PrintExtension.Print(document, settings);
}

Felix.Li 发表于 2024-9-3 09:32:02

您好,这个是一个已知的问题,在标签宽大于高的时候,在某些打印机确实会有异常,该问题在16.2.0出现,18.1目前已经修复,如果是打印防线转了,目前只能您回退,或者升级18.1之后的版本
页: [1]
查看完整版本: [16.4.1]版本从16.0.2升级到16.4.1后,打印方向就自动变了