找回密码
 立即注册

QQ登录

只需一步,快速开始

ahjuxin.net

初级会员

30

主题

114

帖子

334

积分

初级会员

积分
334
ahjuxin.net
初级会员   /  发表于:2024-9-3 09:32  /   查看:182  /  回复:1
100金币
本帖最后由 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);
}

1 个回复

倒序浏览
Felix.LiWyn认证
超级版主   /  发表于:2024-9-3 11:44:20
沙发
您好,这个是一个已知的问题,在标签宽大于高的时候,在某些打印机确实会有异常,该问题在16.2.0出现,18.1目前已经修复,如果是打印防线转了,目前只能您回退,或者升级18.1之后的版本
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部