找回密码
 立即注册

QQ登录

只需一步,快速开始

credream

中级会员

110

主题

296

帖子

828

积分

中级会员

积分
828

活字格认证

credream
中级会员   /  发表于:2020-9-1 20:36  /   查看:12801  /  回复:27
1金币
我们心中用C1REPORT打印,现在发现有缩放的问题,

因为是特定的纸张,这个时候我们设置电脑的默认打印机是XPS,并且给XPS打印机设置了,自定义打印纸张的时候,就没问题。
并且在代码中设置的打印机也是xps的时候就没有问题。
缩放是正常的。
这个时候实际上我们代码中设置了
c1printdocument.creationPrinterName="microsoft xps document writer"
c1printdocument.ActualCreationPrinterName 调试查看ActualCreationPrinterName这个属性也是microsoft xps document writer


但是如果把电脑的默认打印机设置为ONENOTE,但是实际上,在代码中设置的打印机上XPS
c1printdocument.creationPrinterName="microsoft xps document writer"
这个时候打印机调试的时候
c1printdocument.ActualCreationPrinterName 就是nothing,虽然也是用xps打印出来的
但是打印出来的内容,被缩小了。


该怎么解决呢?

27 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-1 23:04:11
沙发
问题已经收到,我明天早上验证以后给您回复
回复 使用道具 举报
credream
中级会员   /  发表于:2020-9-2 08:43:36
板凳
Richard.Ma 发表于 2020-9-1 23:04
问题已经收到,我明天早上验证以后给您回复

23:04了,谢谢啦
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-2 10:35:53
地板
不客气,我早上先验证看看
回复 使用道具 举报
credream
中级会员   /  发表于:2020-9-2 10:43:46
5#
Richard.Ma 发表于 2020-9-2 10:35
不客气,我早上先验证看看

谢谢您
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-2 12:13:16
6#
我这里测试的结果有所不同,会直接调用OneNote来打印

我想明确一下你现在的需求是什么?实际打印的时候,是否就是需要使用XPS来进行打印,还是说XPS和OneNote都是用来做测试的?

如果是XPS设置为默认打印机可以正常打印的话,就是说至少这种情况下是可以满足需求的吧

回复 使用道具 举报
credream
中级会员   /  发表于:2020-9-2 13:32:44
7#
本帖最后由 credream 于 2020-9-2 13:44 编辑
Richard.Ma 发表于 2020-9-2 12:13
我这里测试的结果有所不同,会直接调用OneNote来打印

我想明确一下你现在的需求是什么?实际打印的时候 ...

你好,我是举了个例子说明的,现在的问题是,
因为打印需要用特殊纸张,所以在打印机上自定义了一个尺寸,这个是在打印机的印刷设定的地方设置的.
如果这个时候,电脑跟代码中都设置了默认打印机是XPS的话,打印是没有问题的,打印出来的字体是正常的.

---------------------------------------------------------------------------------------------------------
但是如果我们把电脑的默认打印机设置成了OneNote,但是代码中把要使用的打印机设置为xps的话,
这个时候虽然是按照代码设定,用xps打印出来的,但是出来的张票上面的字体就被缩小了.

---------------------------------------------------------------------------------------------------------我查看一下这两种情况下的区别,就是c1printDocument这个对象,调试的时候,第一种正常的情况,也就是电脑的默认打印机设置成了xps的情况,他的
acturlCreationPrinterName这个只读的属性是="XPS"的,而当把默认打印机设置成了OneNote以后,
这个acturlCreationPrinterName属性就自动变成了nothing了,不知道跟这个有没有关系.

---------------------------------------------------------------------------------------------------------
有这个问题,客户让我们调查,应该是只要代码中指定了用XPS的话,那么即使是电脑的默认打印机设置成了OneNote,那么也应该用
XPS打印出来,并且字体应该是正常的,没有经过缩小的才对,这样是虽然也是用xps打印出来的,但是字体被缩小了,
不知道是怎么回事.
回复 使用道具 举报
credream
中级会员   /  发表于:2020-9-2 13:38:49
8#
Richard.Ma 发表于 2020-9-2 12:13
我这里测试的结果有所不同,会直接调用OneNote来打印

我想明确一下你现在的需求是什么?实际打印的时候 ...

您默认打印机设置为OneNote就用OneNote打印了,好像是:
c1printdocument.creationDevice=Enmu.Printer//好像要把这个设置为printer以后,下面再设置
//creationPrinterName的时候才起作用,您可以试试,这里的枚举一个是Printer,一个是Screen
c1printdocument.creationPrinterName="microsoft xps document writer"
回复 使用道具 举报
credream
中级会员   /  发表于:2020-9-2 13:55:11
9#
本帖最后由 credream 于 2020-9-2 14:16 编辑
Richard.Ma 发表于 2020-9-2 12:13
我这里测试的结果有所不同,会直接调用OneNote来打印

我想明确一下你现在的需求是什么?实际打印的时候 ...


这里我们初始化
_doc的时候是
_doc.CreationDevice=MeasurementDeviceEnum.Printer

然后后面用代码通过给printername设置,来设置想用哪个打印机来打印
_doc.CreationDevicePrinterName="XPS"
字体被缩小了这个问题,原来就是有的,后来把
_doc.PageLayout.PageSettings.PaperKind=PaperKind.Custom设置为custom
就好了.但是后来又发现了,设置默认打印机的时候又出现了这个问题.


这个是正常的.

这个是有问题,就是被缩小了.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-2 13:58:12
10#
如你所说问题是由于调用的打印机不一样导致的,可以通过设置PrinterSettings 来指定打印机

  1.             PrinterSettings setting = new PrinterSettings();
  2.             setting.PrinterName = "microsoft xps document writer";
  3.             c1Report1.Print(setting);
复制代码


如果上述代码无法解决问题的话,我建议你私信我一下你的联系方式,我电话打给你具体沟通一下问题。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部