QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 14173|回复: 0
打印 上一主题 下一主题

C++Builder编程中动态更改自定义打印纸张

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 12:24 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, * J# D3 ~; w2 D1 Q4 o4 V4 V/ ^% d
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,
, h4 J# ~3 t! J% {, N6 u1 V; h1 k/ H就马上传了上来。 </P>
% n9 v. H' m- X5 `- |. L( _- ~<>void __fastcall TForm1::BitBtn1Click(TObject *Sender)
( r; \2 J  H) R{
/ H% C7 [) W* f8 R* D1 o8 Jchar *ADevice, *ADriver, *APort; ! V% f- u; g+ r( e1 a  n. f2 A
THandle DeviceMode; : N2 g1 _5 H7 A+ E2 N
PDeviceMode DevMode; ! [+ @, `  R( I+ B6 K( ^
int length,width; 8 j4 W" g: e" {% t4 N5 W+ y
  length=1400;
/ [3 e: d! `( d) Y( f  width=2410;//设定自定义纸张的尺寸单位为0.1毫米 " f5 N7 i! r# U' w; ~8 F3 K$ S1 d' ?
  ADevice =new char[100]; 2 {* Q: I1 B- e6 S% u+ e
  ADriver =new char[100]; 1 j7 }0 @3 W0 `4 r  N* u
  APort =new char[100]; # k! D' X/ ^6 M" `# E$ K
  //获取打印机 , C8 t5 v. S7 v* s9 D- e. f
  Printer()-&gt;GetPrinter(ADevice, ADriver, APort,DeviceMode); , z, b) i; Y5 S3 R) t
  //获取PDevMode结构
% G2 ?. w& z( k! U" F: k2 l- f  DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
) l, n, q, Z8 i9 X% f" j  //设定可以修改的值
+ x3 @, t1 g- Q2 t7 e  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERSIZE;
% L5 l/ l( R, N2 [7 J0 E& Z# C5 I7 \  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERLENGTH;
. C/ i2 I7 R/ F0 H  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERWIDTH; 0 f0 R6 ^& ~4 ^) x: {7 F  c
  //设定要修改的值
% I5 G' g0 Q6 U6 D+ ]  DevMode-&gt;dmPaperSize=DMPAPER_USER;//设为自定义纸张
5 _0 J2 r# ~, s3 H2 i: X  DevMode-&gt;dmPaperLength=length; ( m% @4 g! J0 `7 R
  DevMode-&gt;dmPaperWidth=width; </P>
" d9 l- Y+ w9 G% W8 Z$ ^<>  //测试打印 / C1 G0 P! ~) }
  Printer()-&gt;BeginDoc();
. t7 L2 B* T6 g1 P9 H9 T* x& d  TextOut(Printer()-&gt;Handle, 0, 0, "-----------------",17); & C" ~, t) M" H3 p: w+ M. H# Y/ M
  Printer()-&gt;NewPage();
$ o2 m4 X# J; f; ~) v  TextOut(Printer()-&gt;Handle, 0, 0, "++++++++++++++++++",18);
. z5 U9 q+ ^8 Q# V# ~' o1 \  Printer()-&gt;NewPage();
! M: [1 A# a+ z% p9 m  Printer()-&gt;EndDoc(); # E5 V  I( Z$ E2 a0 S
} </P>
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-6-11 00:19 , Processed in 0.400338 second(s), 51 queries .

回顶部