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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
% O1 a/ g' }& ~) C* q/ @6 h4 s所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,
( u) e7 R( [1 F0 \" ~就马上传了上来。 </P>
4 u1 V3 D, L' Y- J. a7 B6 p2 D< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) ) x4 L7 J5 m8 ^) A7 o6 p' ]7 Q' X
{ + L' L' Z, z& R' f2 [1 }" \1 C
char *ADevice, *ADriver, *APort;
$ I0 [7 J& t* U+ GTHandle DeviceMode;
) V, y6 t7 X5 xPDeviceMode DevMode; ( N8 ~8 {. n7 f! S
int length,width; ! M$ N+ m9 u% z* z+ M: r4 v8 J
length=1400;
. t! v: K" o5 n width=2410;//设定自定义纸张的尺寸单位为0.1毫米 8 y) K+ |! C2 F/ y/ S
ADevice =new char[100]; : s7 f$ C2 }0 ^
ADriver =new char[100];
# w% U+ n& ~+ g: g APort =new char[100];
$ l4 V: L: m- k: `' N# b //获取打印机 " O" v. k: f1 E3 P- N- ?
Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);
3 F& Q0 p3 B) G& p //获取PDevMode结构
; Q% n" R4 o0 d' g, u( i3 L DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
* V, j; t7 H. G/ s //设定可以修改的值 / f8 @) h" i3 R) `
DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE; & b# r9 W8 z. G, w/ g* i5 v
DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
1 s% E! ~3 x3 Q" B$ D- [! } DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH; 1 h7 D9 z* L+ U2 N2 c
//设定要修改的值 9 B) _+ f/ n3 \$ O
DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
3 f7 R$ s% N: B! D1 ~1 D DevMode->dmPaperLength=length; . C7 b/ J3 A+ Y7 h9 ]
DevMode->dmPaperWidth=width; </P>3 {3 _9 O1 Z' l' b: v3 e+ B
< > //测试打印
: `( \( k/ b2 \6 d3 u2 k j Printer()->BeginDoc(); 9 ~/ P2 U; x" e6 B
TextOut(Printer()->Handle, 0, 0, "-----------------",17);
0 l1 j" A8 b9 R; g Printer()->NewPage(); 9 a0 \+ t A+ P7 s
TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); $ c" |2 f' D+ p9 J: k
Printer()->NewPage(); 1 W/ {6 T. }) M. x. S! w
Printer()->EndDoc(); + F3 w# J, `7 `9 n) M* y, B
} </P> |
zan
|