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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
% J( D5 E7 i8 T5 C( t所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, # Q) S) F5 z9 x5 [
就马上传了上来。 </P>
4 L. }. x" ? T1 C< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) 5 a. l* V, M+ Y! E* v
{ . Y- {- C1 W; Y/ y& q7 o& q
char *ADevice, *ADriver, *APort;
, |1 L1 c" y k2 z3 pTHandle DeviceMode;
2 P5 s; k# I. g) n4 D7 EPDeviceMode DevMode; 6 d+ D4 s+ u7 v$ r, E7 J
int length,width;
$ _! T! d' O) Y, p. H length=1400;
6 Z3 {9 U. M2 k0 z% M+ A width=2410;//设定自定义纸张的尺寸单位为0.1毫米 - m3 l2 A: R: o+ h1 P
ADevice =new char[100]; 7 p8 X% j3 O' k- P2 e
ADriver =new char[100];
: @# V# S% L" N% d APort =new char[100]; % H+ o: A9 R" V/ R9 _5 J
//获取打印机
5 V1 F- n$ k3 ~. o8 T, X Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode); 0 e3 ?* D" x9 a2 X
//获取PDevMode结构
+ A8 G, @) W* C' y DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
' g' v8 C, n! P) d9 ?1 @ //设定可以修改的值 , f) A- w2 k" u% ]! N
DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE; ) T1 ^9 F. v! v& }$ G: m% V: ~
DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
2 |, N4 ?# z" l9 }2 V* @2 o! u DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
2 R6 Z8 r, p# L7 i+ G2 n, O3 ~% j% L //设定要修改的值
" o c: h% f+ S0 ?' d, O DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
. j# t1 H5 _' a: Z DevMode->dmPaperLength=length; + b( `1 ?" C; M) r# Y5 Q! V
DevMode->dmPaperWidth=width; </P>. [* N1 m4 @( C% }8 X3 ^$ T0 @6 z
< > //测试打印
# Y1 S' [6 C: }' W. D8 @/ _2 [ Printer()->BeginDoc();
" {5 n$ H6 d3 s' S v. d7 R TextOut(Printer()->Handle, 0, 0, "-----------------",17); " W* X* D& H% l4 x' C
Printer()->NewPage();
$ a! p3 \! }, O TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); # o# V% ?; X- f% {- E
Printer()->NewPage();
& j# |: g% }7 ^# ^ Printer()->EndDoc();
, U% l( J: q6 p! J9 r9 O} </P> |
zan
|