Vb.net Crystal report抛出“无效打印机”错误,但仅适用于某些用户,且仅适用于一个报告

Vb.net Crystal report抛出“无效打印机”错误,但仅适用于某些用户,且仅适用于一个报告,vb.net,printing,crystal-reports,Vb.net,Printing,Crystal Reports,我们有一个应用程序,允许用户打印使用crystal reports生成的成批文档。打印报告的批次不同,但批次始终通过重复以下步骤进行:生成报告、将其发送到打印机、更新屏幕以通知用户以及重置变量 包含一个特定报告的批处理在为该报告指定打印机名称时抛出无效打印机错误,但仅适用于某些用户,并且仅适用于使用特定打印机的用户。使用完全相同的桌面和打印机,许多用户可以在100%的时间内打印此报告,而其他用户在100%的时间内打印失败 从表面上看,这似乎是一个简单的问题,追踪一个问题的权利,但一旦你深入挖掘它

我们有一个应用程序,允许用户打印使用crystal reports生成的成批文档。打印报告的批次不同,但批次始终通过重复以下步骤进行:生成报告、将其发送到打印机、更新屏幕以通知用户以及重置变量

包含一个特定报告的批处理在为该报告指定打印机名称时抛出无效打印机错误,但仅适用于某些用户,并且仅适用于使用特定打印机的用户。使用完全相同的桌面和打印机,许多用户可以在100%的时间内打印此报告,而其他用户在100%的时间内打印失败

从表面上看,这似乎是一个简单的问题,追踪一个问题的权利,但一旦你深入挖掘它变得混乱

没有此问题的用户可以在所有打印机上无问题打印所有文档。有此问题的用户可以在除一台打印机外的所有打印机上打印除一台之外的所有文档。他们可以在发生故障的打印机上打印所有其他文档,也可以在任何其他打印机上打印故障报告


这到底是怎么回事?答案似乎是报告设置和打印机访问的某种组合,但它没有任何逻辑意义。

我将回答我自己的问题


事实证明,如果计算机上安装了visual studio IDE,则在打印非标准字符集时,它可能会干扰某些打印机驱动程序。在我们的案例中,答案就是不要试图从开发机器上打印文档。

Lol,我从来没有听过Crystal Reports和logical在同一句话中使用过。很可能是打印机驱动程序问题。CR似乎依赖于在开发报告时使用的默认打印驱动程序。也许可以尝试更新它,或者尝试在“打印首选项”中设置“无打印机屏幕显示优化”选项。好主意,我会让你知道它是如何工作的。dotjoe很可能是正确的。Crystal将自己束缚在打印机上,这种心态自其诞生以来就一直伴随着它。如何处理它取决于您使用的Crystal版本,但在Crystal 2011中,进入页面设置并选择无打印机优化屏幕显示。如果我没有实际打印文档或它是一个电子表格输出,我也会选择分离格式页面大小和打印机纸张大小,这样Crystal就不会试图限制页面宽度,这对电子表格来说毫无意义。