使用 C# 和晶体报表在矩阵打印机上打印
本文关键字:打印机 打印 报表 使用 | 更新日期: 2023-09-27 18:30:16
目前我遇到了一个问题,从我们的 C# 核心打印时,使用其嵌入字体在矩阵打印机上打印不起作用。打印机/水晶报告总是将字体更改为某些窗口字体。因此,打印单页非常慢。
如果我直接使用水晶报告设计器进行打印,则一切正常,并且使用了正确的字体。所以它有效,但在从 c# 打印时不起作用。这意味着,驱动程序和打印机运行良好,水晶报告也可以将所有东西发送到打印机。当我开始在 .net 应用程序中打印时,它不起作用。
在报告中设置了正确的打印机,我不覆盖任何设置。我只需创建报告并打印它:
private ReportDocument reportDocument = new ReportDocument('C:''Rpt''Test.rpt');
// Passing parameter and every thing to the report
// Than print it:
reportDocument.PrintOptions.PrinterName = "Tally";
reportDocument.PrintToPrinter(1, false, 0, 0);
水晶报表中的 .net 打印引擎/运行时是否有问题?我认为设计器不为此使用 .net,因此将使用其他组件,这有效。
编辑
在sap snc的这篇文章中,我发现:
仅供参考 - CR Designer 使用 DEVMODE 结构来访问打印机,.NET 使用 System.Drawing.Printing.PrinterSettings 中的>.NET Framework 等效
也许这就是问题所在?
编辑 2
使用Crystal Reports RAS
进行打印,可能会解决问题。我会试一试,让你知道。
谢谢大家!
我不会说这是因为运行时,而是因为 .net 接口调用 Crystal Reports 引擎的选项。通常,您可以重新排序到目标系统/打印机中内置的字体。我不是Crystal Reports的专家,但在PostScript和PDF中,您可以在文档本身中嵌入必要的字体,也可以使输出设备使用自己的字体。CR 必须具有类似的选项,但是在从客户端软件使用它时,您必须显式激活它。