以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]专业报表中打印机默认纸张设置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116435)

--  作者:ajie5211
--  发布时间:2018/3/24 17:19:00
--  [求助]专业报表中打印机默认纸张设置

专业报表中代码预览

Dim doc As New PrintDoc() \'定义一个报表
doc.PageSetting.PaperKind = 1
 \'纸张类型改为B5
doc.Preview()
\'预览

预览是没有问题的,但是打印出来一般都是A4纸,因为一台电脑上的打印机有多个,打不同的表要用到不同的打印机,有时一个打印机会打多种纸张的表单。用下面的代码可以切换默认打印机

Dim obj As object = CreateObject("WScript.Network")
obj.SetDefaultPrinter("打印机名")

有没有代码可以切换默认打印机下的默认纸张?


--  作者:有点蓝
--  发布时间:2018/3/24 17:24:00
--  
设置不了
--  作者:ajie5211
--  发布时间:2018/3/26 7:39:00
--  
以下是引用有点蓝在2018/3/24 17:24:00的发言:
设置不了

现在的需求是,打印后,有一列数据表来记录打印次数,原想的是不预览,直接打印,打印次数加减,现在不行,哪在预览哪里,如果点了打印,就打印次数加1,如果没有就不变化,这个有办法解决吗?


--  作者:有点甜
--  发布时间:2018/3/26 9:02:00
--  
以下是引用ajie5211在2018/3/26 7:39:00的发言:

现在的需求是,打印后,有一列数据表来记录打印次数,原想的是不预览,直接打印,打印次数加减,现在不行,哪在预览哪里,如果点了打印,就打印次数加1,如果没有就不变化,这个有办法解决吗?

 

预览这样做,打印按钮单独做一个按钮

 

下载信息  [文件大小:296.0 KB  下载次数:21]
图片点击可在新窗口打开查看点击浏览该文件:嵌入专业报表.table

 

下载信息  [文件大小:296.0 KB  下载次数:39]
图片点击可在新窗口打开查看点击浏览该文件:嵌入专业报表.table


--  作者:ajie5211
--  发布时间:2018/3/26 9:17:00
--  
思路懂了,只是不知道怎么写这个打印按钮啊,不是专业人员啊,帮助里没的,用到了其它东西的,都蒙圈了。
--  作者:有点甜
--  发布时间:2018/3/26 9:43:00
--  
以下是引用ajie5211在2018/3/26 9:17:00的发言:
思路懂了,只是不知道怎么写这个打印按钮啊,不是专业人员啊,帮助里没的,用到了其它东西的,都蒙圈了。

 

打印按钮,和打印预览的按钮是一样的,最后把Preview改成print即可。


--  作者:ajie5211
--  发布时间:2018/3/26 10:12:00
--  
以下是引用有点甜在2018/3/26 9:43:00的发言:

 

打印按钮,和打印预览的按钮是一样的,最后把Preview改成print即可。

我现在用的就是print,问题是打印机和纸张调整不过来啊。我想要letter纸张,可打出来总是A4的进纸啊。现在就是这个纸张切不好啊。因为没有代码可以实现直接修改默认纸张,我想是不是可以Preview时,点打印了,就打印次数加1,因为Preview里面的打印是可以选择打印机和纸张的。如果直接用print,哪打印纸张又没的选择了。


--  作者:有点甜
--  发布时间:2018/3/26 10:39:00
--  

如果直接使用print,可以指定打印纸张的吧?如代码

 

Dim doc As New PrintDoc() \'定义一个报表
doc.PageSetting.PaperKind = 13 \'纸张类型改为B5
doc.Print

 

甚至这样

 

Dim doc As New PrintDoc() \'定义一个报表
Dim ps As new System.Drawing.Printing.PrinterSettings
ps.Copies = 2   \'设置份数
ps.DefaultPageSettings.PaperSize = ps.PaperSizes(13)
doc.Print(ps)     \'打印


--  作者:ajie5211
--  发布时间:2018/3/26 16:00:00
--  
以下是引用有点甜在2018/3/26 10:39:00的发言:

如果直接使用print,可以指定打印纸张的吧?如代码

 

Dim doc As New PrintDoc() \'定义一个报表
doc.PageSetting.PaperKind = 13 \'纸张类型改为B5
doc.Print

 

甚至这样

 

Dim doc As New PrintDoc() \'定义一个报表
Dim ps As new System.Drawing.Printing.PrinterSettings
ps.Copies = 2   \'设置份数
ps.DefaultPageSettings.PaperSize = ps.PaperSizes(13)
doc.Print(ps)     \'打印

用这个代码PDF打印机生成的PDF错误,我去实体上试试。

 


--  作者:ajie5211
--  发布时间:2018/3/27 8:36:00
--  

实体打印机上测试可以,晕了,早在一周前我就用“doc.PageSetting.PaperKind = 1”这个代码了,一直用的Adobe PDF打印机测试,怎么测试怎么不对。没想到,实体的与Adobe PDF打印机差异这么大。看来以后还是不能省纸啊,最好搬个打印机放边上专门做测试。