CrystalReports PrintToPrinter 不打印任何东西

CrystalReports PrintToPrinter do not print anything

我的问题有点奇怪。 我的代码如下:

    private bool print(int copies)
    {
        const string nameMethod = "print";
        try
        {
            LogHandler.Start(nameMethod);
            m_objMyRepDoc.ReadRecords();
            m_objMyRepDoc.PrintToPrinter(copies, false, 0, 0);
            return true;
        }
        catch (Exception ex)
        {
            LogHandler.LogError(nameMethod, ex);
            return false;
        }
        finally
        {
            LogHandler.Finish(nameMethod);
        }
    }

这用于几​​个不同的 rpt 文件。对于十分之九的打印。对于 1 不要。 我在其他电脑上试过这个,它打印了 10/10。相同版本的 crystal 报告运行时。

我也试过添加

m_objMyRepDoc.ExportToDisk(ExportFormatType.PortableDocFormat, "test"+DateTime.Now.Millisecond+".pdf");

之前 PrintToPrinter 检查此报告的外观以及在这台故障机器上生成的 pdf 是否正确。

有谁知道如何从 10 份报告中的一份中找出这台机器出现问题的原因?没有错误。方法无一例外结束。

如果出现此问题,请检查 crystal 报告中文件菜单下的页面设置。

在那里你可以找到一个没有打印机的标志。禁用此功能后,我的报告开始打印。 不知道为什么使用相同的rpt文件在其他机器上打印。

我有一个类似的问题,即调用 PrintToPrinter 在开发中有效但在其他环境中失败。在极度心痛之后,我发现它也与这个“No Printer flag”有关,并且我收到一条错误消息 - “No Printers are Instaled”。我能够通过更改 PrintToPrinter 调用来解决。

来自 SAP 论坛的 post 引导我朝着正确的方向前进: https://answers.sap.com/questions/12380707/no-printers-are-installed---printtoprinter-problem.html

由此改变:

crystalReport.PrintOptions.PrinterName = "\\print_server\printer";
crystalReport.PrintToPrinter(1, true, 0, 0);

对此:

System.Drawing.Printing.PrinterSettings printersettings = new System.Drawing.Printing.PrinterSettings();
printersettings.PrinterName = PrinterToUse;
printersettings.Copies = 1;
printersettings.Collate = false;
Report.PrintToPrinter(printersettings, new System.Drawing.Printing.PageSettings(), false);