繁体   English   中英

标签打印机开始在大型作业中打印空白页

[英]Label printer starts printing blank pages in large jobs

我遇到了一个非常奇怪的问题,我的用户正在报告:Crystal Reports报告正在打印某个点以外的空白页。 我的故障排除有点缩小了罪魁祸首,但与此同时,显示出一些不一致的结果。

这是低点:

  • 该应用程序是一个使用.NET 4的VB.NET应用程序。
  • 解决方案中嵌入了多个Crystal Report报表,单个表单用于显示和打印任何报表。
  • 要显示的报告是通过代码后端处理的,并在显示表单之前分配给表单的CrystalReportViewer对象。
  • 对于问题报告,数据源来自在代码中运行的SQL查询,然后被指定为报告的数据源,然后将报告指定为表单中CRV对象的报告源。
  • 标签打印机通过USB连接到相关计算机,安装程序用于提供驱动程序。
  • 如果重要的话,那就是Citizen CLP-7201e标签打印机。

将数据源分配给报告的代码如下:

    myCommand = New SqlClient.SqlCommand(strSQL, conPlanning)
    myCommand.ExecuteNonQuery()

    Da = New SqlClient.SqlDataAdapter(myCommand)

    Da.Fill(dsData, "TempPrintLabels")

    rptPrintLabels.SetDataSource(dsData.Tables(0))
    rptPrintLabels.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait

    frmReports.rptViewer.ReportSource = rptPrintLabels

    frmReports.Show()

strSQL是一个基本的SQL语句,基于从该特定表单中选择的报告。 报告的SQL查询是SELECT * FROM TempPrintLabels


有基本信息。 报告生成正常,对于包含~100个标签的报告,它打印正常。 当报告超过这个限制时会发生陌生感; 它位于95-120标签范围内。 它似乎并不一致。 报告将打印,直至达到某一点。 那时候,报告的其余部分只会打印出空白。 将会有尽可能多的空白,因为应该有剩余的页面。 但是,如果您在空白开始时再次启动作业,则打印正常。

当我在CrystalReportViewer中查看此报告时,它看起来很好; 所有标签都正确呈现。 当我将其打印到PDF或文本文件打印机时,所有页面都在那里。 所以报告和印刷版似乎对我有用。

我以为是打印机。 为了测试这一点,我将185页的作业打印到PDF,然后将其打印到打印机。 那印得很好。

我无法解释这一点,甚至无法进一步诊断。 打印表格中没有代码; 它使用CrystalReportViewer对象来处理所有事情。 如果是这个CRV对象,打印到PDF应该给我空白页面。 它没有。 如果它是打印机,它应该已经开始从PDF直接打印空白,就像直接从CRV对象打印一样。 它没有。

我还能找到什么?

对于这个问题,我有一些想法在打印时会导致这种行为。

  1. 您所有标签长度的宽度问题可能超出页面大小。 因此,当您缩小标签的宽度时,您可以检查所有标签和页面是否为空白(即使标签未正确显示,我们也可以单独处理)。 如果它没有显示(正如您现在所获得的那样),那么您只需将“Can grow”选项的标签宽度处理为true即可。

  2. 如果一切正常,那么我认为您可以检查打印机的页面设置/边距。

  3. 如果上述方法无效,则只需添加静态标签和值即可创建新报告或现有报告,然后先预览,然后从代码中调用。 你找到的东西。

根据我的经验(在这种情况下我可能是错的),当您的列增加时,只要空白页面出现在水晶报表中,报表的宽度就会产生问题。 因此,要么将报告宽度设置为减少,要么将打印机页面设 所以它打印,否则它不会抛出错误,但给出空白页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM