QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 12:24 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
<>因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
+ {9 G4 u8 U% [( o所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, 1 p, C; |, o  U+ _/ m/ F4 Y
就马上传了上来。 </P>
9 h+ [+ |  k! W% W  p3 W# \( f, l<>void __fastcall TForm1::BitBtn1Click(TObject *Sender) : m7 d' e6 U  z8 ?
{
0 H7 q" t) w& X$ j0 R3 Schar *ADevice, *ADriver, *APort; $ R. ]; H/ v: B( I1 @
THandle DeviceMode;
! D* n$ l! l- v3 \) k2 Z9 o$ Y5 EPDeviceMode DevMode;
) d7 ^7 e3 _4 E% |; X4 B, X' Mint length,width;
  u9 {/ \& O3 G) X  length=1400; 3 n. w! [8 z' I0 Q2 f
  width=2410;//设定自定义纸张的尺寸单位为0.1毫米
0 c: ]3 b) V9 _6 V  U' ]! U) i  ADevice =new char[100];   s2 `& D$ }: T- T, }; C# _, x8 v
  ADriver =new char[100];
0 @4 W+ O2 U' }" T  Z  ]  APort =new char[100];
+ v/ W( f  U5 C' `" b  \# W# `  C  //获取打印机 ; A6 F4 M+ `4 [6 e4 \
  Printer()-&gt;GetPrinter(ADevice, ADriver, APort,DeviceMode);
( W9 j" J$ F% K. M3 B! S( c2 ?/ }. g  //获取PDevMode结构
- F1 j; i8 T3 t2 |4 h/ j  DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
! D+ P4 B8 q" l& Y* ]; o0 _. y  //设定可以修改的值 " d0 o( Z6 B% t1 w4 w
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERSIZE; 2 X' L: g8 {( y0 f# v% R
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERLENGTH; # X4 j+ S$ X2 R. E6 t6 t
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERWIDTH;
( M8 i, s7 Y, ~+ P, Y  //设定要修改的值 ) v; C5 R8 o& I; S- ]; K
  DevMode-&gt;dmPaperSize=DMPAPER_USER;//设为自定义纸张
2 T- h4 T/ V* h" b  B8 \9 o; U3 ~; j. `: A  DevMode-&gt;dmPaperLength=length;
8 A  ]: [1 H4 w" _* M. U; g  DevMode-&gt;dmPaperWidth=width; </P>
5 u, L. R1 b* `, G<>  //测试打印 4 s& m& Q& ?1 [6 s$ G+ J
  Printer()-&gt;BeginDoc();
5 |0 ]" a! u$ v  TextOut(Printer()-&gt;Handle, 0, 0, "-----------------",17); 1 l2 b; A! y8 D
  Printer()-&gt;NewPage(); 8 s7 r" V6 Z- o6 S, K1 V
  TextOut(Printer()-&gt;Handle, 0, 0, "++++++++++++++++++",18); ) P9 l) `9 ~$ C5 w* L
  Printer()-&gt;NewPage(); ( E( p) K7 y/ I: l( X
  Printer()-&gt;EndDoc();
3 z5 @9 q. b2 {+ G7 l& D$ a+ M} </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, 2025-12-29 00:09 , Processed in 0.344450 second(s), 51 queries .

回顶部