Foxtable(狐表)用户栏目专家坐堂 → 直接打印Excel表时,如何指定“页面设置”上的打印质量


  共有3919人关注过本帖树形打印复制链接

主题:直接打印Excel表时,如何指定“页面设置”上的打印质量

帅哥哟,离线,有人找我吗?
xvkewen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
直接打印Excel表时,如何指定“页面设置”上的打印质量  发帖心情 Post By:2018/10/8 14:53:00 [只看该作者]

如题,直接打印Excel表时,如何指定“页面设置”上的打印质量?

比如,我们打印Excel正常情况下默认都是"300点/英寸",我想让用以下代码指定一个打印机来打印,这时我需要设置打印质量为“96点/英寸”,才可以达到最好的打印效果;

Dim App As New MSExcel.Application

Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(filepath)

Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)

Ws.PrintOut(Preview:=False,ActivePrinter:="doPDF v7")    '直接打印,但是没有指定打印质量,没有达到最好的打印效果;

App.Quit



此主题相关图片如下:asdf.jpg
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/8 15:03:00 [只看该作者]

设置属性 PrintQuality

 

你可以通过【录制宏】,得到对应的代码,改写到foxtable即可

 

http://www.foxtable.com/webhelp/scr/2121.htm

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
xvkewen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2018/10/12 12:05:00 [只看该作者]

我的代码如下,但运行的时候出现以下错误不能正常打印,是哪错了吗?


图片点击可在新窗口打开查看此主题相关图片如下:sd.jpg
图片点击可在新窗口打开查看

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(filepath)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Cells
Rg.WrapText = True
Rg.EntireRow.AutoFit  '自动调整行高
wb.saved = True
App.DisplayAlerts = False
App.Visible = True
App.ActivePrinter ="doPDF v7"
Ws.PageSetup.PrintQuality = 96
Ws.PrintOut(Preview:=False)    '直接打印;    
App.Quit

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 12:23:00 [只看该作者]

1、默认打印机,设置成 doPDF v7

 

2、删掉代码 App.ActivePrinter ="doPDF v7"

 

3、请在excel里面录制宏,获取得到代码


 回到顶部
帅哥哟,离线,有人找我吗?
xvkewen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2018/10/24 11:59:00 [只看该作者]

如下图,我现在的默认打印机是用于通过文件监视器自动设别并打印刚刚通过DoPdf V7虚拟打印机转换后的PDF文件的;如果我将Dopdf v7设置成默认打印,那么就需要在文件监视器这里执行Print动作的时候要指定真实的打印机进行打印了 ;

在文件监视器里如何指定打印机进行打印呢?(其实在这里指定打印机也不方便,公司有很多打印机,分布在不同的楼层,指定直实的打印机也会比较麻烦;)


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

----文件监视器代码;
static ptime As Date = Nothing
Dim sp As TimeSpan = Date.now - ptime
ptime = Date.now
If sp.TotalMilliseconds < 2000  Then '间隔2000毫秒
    Return
End If

Dim Proc As New Process
Proc.File = e.FullPath
Proc.Verb = "Print" '指定动作
Proc.Start()
ShowAppWindow("Adobe Reader",4)
ShowAppWindow(e.Name,5)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 12:03:00 [只看该作者]

设置默认打印机,参考

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
xvkewen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2018/10/24 14:03:00 [只看该作者]

不是设置默认打印机,而是怎么在文件管理器中指定使用非默认打印机打印?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 14:50:00 [只看该作者]

以下是引用xvkewen在2018/10/24 14:03:00的发言:
不是设置默认打印机,而是怎么在文件管理器中指定使用非默认打印机打印?

 

必须设置默认打印机,没有其它方法。


 回到顶部
帅哥哟,离线,有人找我吗?
xvkewen
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2018/10/24 15:02:00 [只看该作者]

难道Excle在显示的时候是OK,打印与打印预览时总会少几个字的问题,用程序自动解决就无解了吗?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:excel打印显示不全.xlsx



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/24 15:59:00 [只看该作者]

换一种思路,把excel文件保存为图片,然后打印图片

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = app.WorkBooks.open("C:\Users\dv rrxaI600 007\Downloads\excel打印显示不全.xlsx")
    Dim Ws = wb.WorkSheets(1)
    Dim rg As MSExcel.Range = ws.UsedRange
   
    rg.copy
    'app.visible = True
    ClipBoard.GetImage.save("d:\aaa.wmf")
    app.quit
catch ex As exception
    msgbox(ex.message)
    app.quit
End try


 回到顶部
总数 20 1 2 下一页