明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3136|回复: 5

[求助]夺取打印机纸张类型名称问题

[复制链接]
发表于 2009-6-17 21:27:00 | 显示全部楼层 |阅读模式

我一般用A3纸打印,原先的打印机我在CAD中读图纸类型也从没出错,因为这个打印机的A3纸名称就叫“A3“,可最近换了一台打印机,它的A3纸类型名称叫“A3(297*420)”,可CanonicalMediaName读出的图纸名称任然是“A3”,名称后面并不带那个“(297*420)”部分,这下惨了!我在其它空间设置打印纸时设成“A3“是说什么都不对了,就是“这个图纸类型不存在”。各位,这个问题有解决办法么?怎么才能读取A3图纸的全称“A3(297*420)”?

 楼主| 发表于 2009-6-17 23:30:00 | 显示全部楼层
顶上,等待。
发表于 2009-6-18 12:42:00 | 显示全部楼层

图纸名称应该是这个函数得出的一个数组 GetCanonicalMediaNames,

图纸信息应该是GetLocaleMediaName(m_paper_name(i))得出的。

在打印时,应该是使用图纸名称即m_paper_name(i),而不是用GetLocaleMediaName(m_paper_name(i))得出的值。

但是有些打印设备的图纸名称与用GetLocaleMediaName(m_paper_name(i))得出的信息是一样的,特别是常的介质如A3,A4等。

不知道我讲清楚没有。

 楼主| 发表于 2009-6-18 21:28:00 | 显示全部楼层

谢楼上。

不知是不是我理解问题,我就想问,怎么确定当前图形中所存储的是m_paper_name(i)中的哪一个?即i是多少?

 楼主| 发表于 2009-6-24 21:06:00 | 显示全部楼层
我知道了,是我没说明白,我不是要在我自己的程序内部设定打印纸张,而是想要读取图形中上次打印时用的纸张名称(即CAD打印界面上选择的打印纸的名称,不是GetCanonicalMediaNames得到的纸张名称列表中的名称,这个与打印界面上显示的纸张名是不一样的),这个怎么得到?请指教一下,谢谢了。
发表于 2013-6-10 21:37:20 | 显示全部楼层
本帖最后由 3xxx 于 2013-6-10 21:40 编辑

   就是我们手工设置打印机的时候,看到的是A3A2A1纸张列表,可是在vba中,不能使用这样的文字。需要用   CanonicalMediaName获得纸张列表,然后对应。比如,有时候A0对应的是user270之类。
  '打印配置
         ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo '刷新打印设备信息
         MediaName = Layouts.Item(0).CanonicalMediaName 'item(0)代表第一个图纸空间
         ThisDrawing.ActiveLayout.ConfigName = Layouts.Item(0).ConfigName '"Hewlett-Packard HP-GL_2 Plotter.pc3" 'Adobe PDF"pdfFactory Pro.pc3" '打印机名称
         ThisDrawing.ActiveLayout.StyleSheet = Layouts.Item(0).StyleSheet '"acad.ctb"  '打印样式

        '获得纸张列表
        ThisDrawing.ActiveLayout.CanonicalMediaName = MediaName '
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 13:40 , Processed in 0.167068 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表