将打印机设置复制到报告中

2020-09-05 11:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


唐,

我使用Report.PrintOptions.CopyTo方法从报表中复制.Net打印机设置与从报表中复制的运气并不好。 我只能复制打印机对话框的默认值。 更改它们后,必须有一种方法可以从对话框中获取这些值。 因此,当显示打印机对话框时,我需要更新报告以反映更改。 我正在尝试保存Report.PrinterOptions.PaperOrientation,PaperSize,PaperSource,PrinterDuplex。 当用户更改打印机对话框上的信息时,无法获得反映我的更改的值。 必须有一种方法可以做到这一点。 我所看到的都是默认值,这对我没有帮助。

谢谢

克里斯

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


唐,

我使用Report.PrintOptions.CopyTo方法从报表中复制.Net打印机设置与从报表中复制的运气并不好。 我只能复制打印机对话框的默认值。 更改它们后,必须有一种方法可以从对话框中获取这些值。 因此,当显示打印机对话框时,我需要更新报告以反映更改。 我正在尝试保存Report.PrinterOptions.PaperOrientation,PaperSize,PaperSource,PrinterDuplex。 当用户更改打印机对话框上的信息时,无法获得反映我的更改的值。 必须有一种方法可以做到这一点。 我所看到的都是默认值,这对我没有帮助。

谢谢

克里斯

付费偷看设置
发送
17条回答
樱桃小丸子0093
1楼 · 2020-09-05 11:39.采纳回答

唐,

您认为使用该方法进行打印时可以使用报告设置吗? 我正在保存这些设置,需要使用这些设置,而不是报告中保存的内容。 我认为这是最后一件事,我走出困境。 除了内存问题,我不是在忙bri

谢谢

Chris

SC_Yao
2楼-- · 2020-09-05 11:21

嗨,克里斯,

在Windows 10上,我只有MS PCL 6,没有可用的打印机托盘。

您正在使用什么操作系统?

按照我建议的方式使用测试应用程序,我选择了我们在网络上设置的HP Universal驱动程序,它使用了HP Universal驱动程序:

我选择了纸盘5:

查看报告并导出为RPT格式,然后在CRD中打开该报告,然后看到纸盘5已保存:

如果要从打印机/报告中复制CR的纸张来源,为什么要使用CR的纸张来源? 您应该使用打印机的纸张来源。

尝试使用RAS复制到/从,您正在进行更改,因此您需要使用RAS。

Don

SKY徐
3楼-- · 2020-09-05 11:20

无论我做什么,唯一的纸张来源都是行不通的。 我需要纸张来源来设置报告。 现在,所有其他选项都可以使用。 打印机上的纸张来源和报告上的纸张来源甚至都不是枚举,枚举也不相同。 我需要知道如何在报告上设置纸盘(纸张来源)以匹配打印机。 谢谢

嗨,克里斯,

我仍然需要知道您使用的是什么操作系统,因为MS的通用打印机驱动程序没有可用的打印机托盘。

我建议保存,以便我们可以查看报告中保存了哪些值。

您是否尝试过使用我的测试应用程序使用的RAS的"设置打印机"例程?

您尝试过 使用RAS的CopyTo/CopyFrom API来设置值?

只是在寻找解决方法,因为如果这是一个错误,则需要花费一些时间来解决。 可能是Windows或以下集合之一中的错误:

System.Drawing.Printing.PrintDocument pDoc =新的System.Drawing.Printing.PrintDocument();

CrystalDecisions.Shared。 PrintLayoutSettings PrintLayout =新的CrystalDecisions.Shared.PrintLayoutSettings();

System.Drawing.Printing.PrinterSettings printerSettings =新的System.Drawing.Printing.PrinterSettings();

System.Drawing。 通过我确实看到更改/设置纸盘始终默认为默认值,或者可能是列表中的第一个纸盘。

/p>

半个程序猿
5楼-- · 2020-09-05 11:27

这是问题所在。 所有HP打印机和新的通用驱动程序都有许多纸盘选项。 我有一台打印机,带有6个纸盘和一个信封纸盘,以及手动收费纸盘。 所以你们没有那么多的纸盒(枚举)这是您的列表:

PaperSource.Auto

PaperSource.Cassette

PaperSource.Envelope

PaperSourve.EnvManual

PaperSource.FormSource

PaperSource.LargeCapacity

PaperSource.LargeFmt

PaperSource.Lower

PaperSource.Manual

PaperSource.Middle

PaperSource.SmallFmt

PaperSource.Tractor

PaperSource.Upper

PrintDialog pd =新的PrintDialog();

Report.PrintOptions.CopyTo(pd.PrinterSettings,pd.PrinterSettings.DefaultPageSetting);

除纸张来源外,所有内容均适用。

纸张来源无法复制或转换,因为进纸匣与您的可用纸盘和HP的纸盘不一致。 如果他们将表单源作为打印机表单源的索引或字符串值,将更加简单。 如果必须创建样本,可以,但是可以向您保证,我无法在许多HP打印机上放置纸盘。 他们也更改了驱动程序,这导致保存纸盘分配出现问题。

谢谢

木偶小白
6楼-- · 2020-09-05 11:22

嗨克里斯,

我已经对此进行了更多的测试,现在我想我同意您的观点,但是我必须向DEV询问。

我也对此进行了搜索,发现尝试更改默认纸盘(默认为ENUM 15),您必须进入PrinterServer Collection,因此它位于.NET CR的CopyXXXX函数的核心中。 >

我首先使用默认值对此进行了验证:

如您所见,我正在选择ENUM 262并尝试进行设置,但是当鼠标悬停在PaperSource上时,它仍显示ENUM 15。

然后我将打印机属性中的默认纸盘更改为纸盘4,现在它打印到纸盘4,但是我仍然无法将其更改为所选纸盘。

我将不得不Ping DEV,看看他们是否意识到了这个问题,或者根本无法解决这个问题。

我将尝试CopyTo/From的RAS版本,看看是否可行。

Don

Cikesha
7楼-- · 2020-09-05 11:31

使用LPT1安装假打印机,并使用Microsoft通用PCL驱动程序在打印机上安装5个纸盘,您将看到我在说什么。

一周热门 更多>