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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, 6 A7 ]3 o; s8 t* F
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,
L( T3 H) O9 Z就马上传了上来。 </P>
r8 E) b% x7 ^; ~< >void __fastcall TForm1::BitBtn1Click(TObject *Sender)
) E- u4 C. H& A7 L, m) Z{ 2 _6 B& h/ A# u; L3 s
char *ADevice, *ADriver, *APort;
: b5 f$ t9 G0 S# n3 P& PTHandle DeviceMode;
3 t/ y( x& o9 ^2 x2 sPDeviceMode DevMode;
" x3 x# A: r! `; w6 Iint length,width;
! p& K8 w: {! X# u7 x length=1400; 4 q6 M4 g7 Y& h" M
width=2410;//设定自定义纸张的尺寸单位为0.1毫米 9 s+ i: ?: _- _" |1 s9 H$ ?( `- M
ADevice =new char[100];
2 D6 R/ y5 J# |* L( E8 \ ADriver =new char[100]; 7 t# K; @7 p$ V3 Z8 B; V) g
APort =new char[100];
- T! m+ y" p$ S* p1 ?3 O //获取打印机
: h6 x7 d3 g/ r9 a. l Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode); 6 x* F" Y; L6 T; j( |) m: |
//获取PDevMode结构
; g4 y- ]: j. u% s! @0 k% i DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
# I( i. F% r; c3 Z //设定可以修改的值
1 W8 Z6 R, k. j' T) { DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
# q1 {% a5 f$ x! o2 V DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
) R1 _2 S% @. g! S/ l( ? DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
9 x" C5 b! T1 L- E) ~' E //设定要修改的值
! w- o3 ~9 ^# V( U$ t DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张 9 t4 b4 T& ?! Y: c- w% K
DevMode->dmPaperLength=length;
8 U' V( q1 H; q+ t3 m# t# m5 R DevMode->dmPaperWidth=width; </P>
! S |/ ~3 t8 i3 [4 N< > //测试打印 % N" q% ?3 \1 v* t+ k
Printer()->BeginDoc();
( i7 f8 B8 N) g9 H TextOut(Printer()->Handle, 0, 0, "-----------------",17);
% A) g$ u3 G# V9 L) Q/ q Printer()->NewPage();
1 y7 H! f' g4 j- t0 c) Y# z TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); * N# k" N- K$ v8 ?! Z/ _3 M
Printer()->NewPage();
. U" K# ~% \+ Z3 i2 j1 ^' E. F Printer()->EndDoc();
' k1 L7 V; d: d$ m2 I: ^( o- l} </P> |
zan
|