如何使用打印机DEVMODE结构中的dmPaperSize

jiabin_007 2009-12-29 04:34:34
我本意是想要获得DEVMODE结构中的dmPaperLength和dmPaperWidth。
但是,在提取某款打印机的默认devmode值时,它的dmPaperSize不为0,dmPaperLength和dmPaperWidth为0。

我如何才能根据dmPaperSize的值获得纸张的长和宽呢?


望大侠帮忙!!!
...全文
960 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiabin_007 2009-12-31
  • 打赏
  • 举报
回复
找到答案了,应该用DeviceCapabilities来寻找打印机支持的纸张规格。
孤独剑_LPZ 2009-12-30
  • 打赏
  • 举报
回复
呵呵,顶老鸟
jiabin_007 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tiger_zhao 的回复:]
这只是在打印机有多种规格纸张是优先选择,并不表示当前实际纸张规格。
[/Quote]

在程序里,我在做打印预览前,提取了打印机驱动的信息。
在devmode结构体中,dmPaperSize值是9,对应的规格是DMPAPER_A4 A4 Sheet, 210 by 297 millimeters。
但是,在预览时显示的纸张是长条形的,我估计是按51*290mm和57*297mm两种选项显示预览的。

我想可不可以把“纸张规格”51*290mm和57*297mm两种选项在程序中提取出来呢?
Tiger_Zhao 2009-12-30
  • 打赏
  • 举报
回复
这只是在打印机有多种规格纸张是优先选择,并不表示当前实际纸张规格。
jiabin_007 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tiger_zhao 的回复:]
什么的打印预览?
设备(打印机)的属性是实际使用的纸张大小,而打印预览中的大小为需要输出内容的大小,两者可以不匹配。
比如你可以用实际 A3 纸张打印 A4 大小的内容。
[/Quote]
我的打印机驱动是BTP-2001CP(S),
在打印机属性的“打印默认值”中有个“高级”选项,里面限定了“纸张规格”是51*290mm和57*297mm两种选项。(我只安装了驱动,并没有连接打印机)

在程序中,我怎么才能提取到这个51*290和57*297呢?

麻烦大哥了!
Tiger_Zhao 2009-12-30
  • 打赏
  • 举报
回复
什么的打印预览?
设备(打印机)的属性是实际使用的纸张大小,而打印预览中的大小为需要输出内容的大小,两者可以不匹配。
比如你可以用实际 A3 纸张打印 A4 大小的内容。
jiabin_007 2009-12-30
  • 打赏
  • 举报
回复
谢谢一楼!

我得到的dmPaperSize是DMPAPER_A4 A4 Sheet, 210 by 297 millimeters

但是在打印预览的时候,纸张却是53*297的,这个值可以在打印机驱动的“页面设置”的“纸张规格”中看到,为什么它和dmPaperSize不一致呢,如何可以取得这个值呢?

Tiger_Zhao 2009-12-29
  • 打赏
  • 举报
回复
dmPaperSize 对应不同的纸张,都有固定的大小
[Quote=MSDN:]
DMPAPER_LETTER Letter, 8 1/2 by 11 inches
MPAPER_LEGAL Legal, 8 1/2 by 14 inches
DMPAPER_A4 A4 Sheet, 210 by 297 millimeters
DMPAPER_CSHEET C Sheet, 17 by 22 inches
DMPAPER_DSHEET D Sheet, 22 by 34 inches
DMPAPER_ESHEET E Sheet, 34 by 44 inches
DMPAPER_LETTERSMALL Letter Small, 8 1/2 by 11 inches
DMPAPER_TABLOID Tabloid, 11 by 17 inches
DMPAPER_LEDGER Ledger, 17 by 11 inches
DMPAPER_STATEMENT Statement, 5 1/2 by 8 1/2 inches
DMPAPER_EXECUTIVE Executive, 7 1/4 by 10 1/2 inches
DMPAPER_A3 A3 sheet, 297 by 420 millimeters
DMPAPER_A4SMALL A4 small sheet, 210 by 297 millimeters
DMPAPER_A5 A5 sheet, 148 by 210 millimeters
DMPAPER_B4 B4 sheet, 250 by 354 millimeters
DMPAPER_B5 B5 sheet, 182-by-257-millimeter paper
DMPAPER_FOLIO Folio, 8-1/2-by-13-inch paper
DMPAPER_QUARTO Quarto, 215-by-275-millimeter paper
DMPAPER_10X14 10-by-14-inch sheet
DMPAPER_11X17 11-by-17-inch sheet
DMPAPER_NOTE Note, 8 1/2 by 11 inches
DMPAPER_ENV_9 #9 Envelope, 3 7/8 by 8 7/8 inches
DMPAPER_ENV_10 #10 Envelope, 4 1/8 by 9 1/2 inches
DMPAPER_ENV_11 #11 Envelope, 4 1/2 by 10 3/8 inches
DMPAPER_ENV_12 #12 Envelope, 4 3/4 by 11 inches
DMPAPER_ENV_14 #14 Envelope, 5 by 11 1/2 inches
DMPAPER_ENV_DL DL Envelope, 110 by 220 millimeters
DMPAPER_ENV_C5 C5 Envelope, 162 by 229 millimeters
DMPAPER_ENV_C3 C3 Envelope, 324 by 458 millimeters
DMPAPER_ENV_C4 C4 Envelope, 229 by 324 millimeters
DMPAPER_ENV_C6 C6 Envelope, 114 by 162 millimeters
DMPAPER_ENV_C65 C65 Envelope, 114 by 229 millimeters
DMPAPER_ENV_B4 B4 Envelope, 250 by 353 millimeters
DMPAPER_ENV_B5 B5 Envelope, 176 by 250 millimeters
DMPAPER_ENV_B6 B6 Envelope, 176 by 125 millimeters
DMPAPER_ENV_ITALY Italy Envelope, 110 by 230 millimeters
DMPAPER_ENV_MONARCH Monarch Envelope, 3 7/8 by 7 1/2 inches
DMPAPER_ENV_PERSONAL 6 3/4 Envelope, 3 5/8 by 6 1/2 inches
DMPAPER_FANFOLD_US US Std Fanfold, 14 7/8 by 11 inches
DMPAPER_FANFOLD_STD_GERMAN German Std Fanfold, 8 1/2 by 12 inches
DMPA PER_FANFOLD_LGL_GERMAN German Legal Fanfold, 8 1/2 by 13 inches
[/Quote]

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧