- 在线时间
- 0 小时
- 最后登录
- 2007-9-23
- 注册时间
- 2004-9-10
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 9975 点
- 威望
- 7 点
- 阅读权限
- 150
- 积分
- 4048
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1893
- 主题
- 823
- 精华
- 2
- 分享
- 0
- 好友
- 0

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
5 \- m, ]8 q" E所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,
& }& ^: Q8 Y# l就马上传了上来。 </P>
* ~5 `: k# O+ p< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) 1 i5 R# Q# g2 }/ p e1 w; @5 k
{ " H- t& i" `3 a
char *ADevice, *ADriver, *APort;
& a* I7 o. }# u; M7 XTHandle DeviceMode; , D& W% m0 S( \! i8 b9 _( C4 U% d
PDeviceMode DevMode; 4 j* T8 o' C: m& v: [
int length,width; * Y" ]5 b, j( d+ X
length=1400;
) X! U% y$ o' W) `8 ]4 w width=2410;//设定自定义纸张的尺寸单位为0.1毫米
9 h% a8 C- I5 j8 W ADevice =new char[100]; / y' Z% x9 q' L/ O
ADriver =new char[100]; % \: F9 D. f' t
APort =new char[100]; 4 T4 Y9 e" {$ I( E9 l
//获取打印机 u1 u2 F( F( ^& `8 D
Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode); ( X2 c2 M+ U0 M+ W0 m
//获取PDevMode结构
# ]" u& _5 M: V" _: V) A DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
! d% d' q' E6 T3 f- B/ G& {' V //设定可以修改的值
( ~, c* g7 @2 @% i# N# p. ]! m DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
4 x6 i M* F% g, E DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH; 5 }2 n3 M7 K6 H- q7 f7 f( l1 X
DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
K! y& v$ m1 S J: s/ } //设定要修改的值 6 T1 a; J' A" I j' u/ r
DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
4 z, O2 V0 @* E5 n. M8 R DevMode->dmPaperLength=length;
$ B7 e# L6 N2 U6 K3 Q DevMode->dmPaperWidth=width; </P>9 T# g+ e# j& W' O# b
< > //测试打印 6 ^7 X( u& {/ J
Printer()->BeginDoc();
9 i6 ?0 z0 r0 O: } TextOut(Printer()->Handle, 0, 0, "-----------------",17); 1 V. J2 D2 P+ q4 C8 T
Printer()->NewPage();
9 s! j5 l. c; B( P$ r TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); / C$ G% G* ^2 O. g1 V% P
Printer()->NewPage(); % D' Y; d, O7 o3 G
Printer()->EndDoc();
7 v8 H$ h! Z* c) c# ?. } Z d/ y} </P> |
zan
|