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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, * D9 d& _& i4 F* t- U2 T7 S M
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, " R- ?! c4 ?9 E2 x
就马上传了上来。 </P>
8 e/ }( }' f4 I+ K1 Q< >void __fastcall TForm1::BitBtn1Click(TObject *Sender)
2 C0 l2 G8 i: M$ B2 ~' W4 q{
( o( }8 k7 x5 b9 Z, r" ]char *ADevice, *ADriver, *APort; " c' Z- R+ ]( e
THandle DeviceMode;
! Z. E# x2 M m( hPDeviceMode DevMode;
. f# b' q, z! v# T& J$ {int length,width;
) [7 ]4 h7 O! O6 E% v length=1400; ' x0 E# ?( L, V- o* B- |7 A
width=2410;//设定自定义纸张的尺寸单位为0.1毫米
0 r \/ \4 q2 h' ~% j ADevice =new char[100]; ; z+ a$ o+ }* f
ADriver =new char[100];
" Z( y/ s) [, [ APort =new char[100]; / P1 c' Z/ v3 ~) L: m8 X7 }* g
//获取打印机
+ f% q2 c* p7 X, U/ C+ Z a Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);
) x0 j- { C5 ?/ ?8 h, s //获取PDevMode结构 ( o/ h& a' B: u& Q1 | i1 O3 ?0 F. A
DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
! o- Z& ?1 h, L' w: d; N2 j //设定可以修改的值
0 E; d! ?# v" M# l2 ?& O! L' t0 d3 N DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE; - q: A: ?% x: \' T n
DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH; ! }- |) F/ O. ^' ~- V
DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
$ t6 s; H! ?8 A3 _( x/ `& w //设定要修改的值
& _/ n( h% I3 v* v1 g8 @5 B( [/ E/ H DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
3 L- o9 j4 U1 b; u9 v2 z- B DevMode->dmPaperLength=length; 7 ~' S% p4 e$ {
DevMode->dmPaperWidth=width; </P>4 m& a) W- u- R
< > //测试打印 5 C* h& `8 C: G! E5 |3 {
Printer()->BeginDoc();
- A A2 ~7 X) N$ [ TextOut(Printer()->Handle, 0, 0, "-----------------",17);
) Q2 \7 i: L6 d7 [4 m4 I& L Printer()->NewPage();
; Y2 O4 J" _! @$ J( w! z2 Q TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); 6 m& Q: w A6 `2 ^/ k' z5 Z
Printer()->NewPage(); 6 Q' ~2 z# P( b9 U
Printer()->EndDoc(); $ I9 s7 [ t7 y& z! E& `
} </P> |
zan
|