QQ登录

只需要一步,快速开始

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

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

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

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2005-1-26 12:24 |只看该作者 |正序浏览
|招呼Ta 关注Ta
<>因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
; M$ K$ U7 O4 R7 g所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,   b2 z  t0 R+ X' b9 `- ~- y: @7 j
就马上传了上来。 </P>
' D+ ]: Q+ H+ ^<>void __fastcall TForm1::BitBtn1Click(TObject *Sender)
8 V, w- W( ]9 M5 p% }+ d* o- b{
/ w5 K% F9 {$ ychar *ADevice, *ADriver, *APort; 2 P3 l: p$ }5 p, R
THandle DeviceMode;
6 r" `4 i, K2 \PDeviceMode DevMode;
9 G! g' l1 H0 D( Tint length,width;
6 ~) @# q( \$ ~3 S6 x! P$ X, ^0 f  length=1400;
) W+ v$ ~( }& U; T2 r2 z6 z7 l  width=2410;//设定自定义纸张的尺寸单位为0.1毫米 ! m9 X% [) M8 N0 |0 a: T7 {* u
  ADevice =new char[100];
2 [2 z; D$ X, t# b4 e  z# c+ t( K4 H6 \  ADriver =new char[100];
. U+ O5 q( x1 D1 q  APort =new char[100]; 2 I) Y- R2 j; g; V
  //获取打印机
& p5 {) g9 \8 l* q  h2 |% k  Printer()-&gt;GetPrinter(ADevice, ADriver, APort,DeviceMode); ( h- Z# i/ T. p7 w7 C
  //获取PDevMode结构
( C, x2 a6 z. U7 i. V$ M  G& \  DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
) p0 Y/ e5 T" T  //设定可以修改的值 0 e, {2 C/ p: |/ y- l0 g
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERSIZE;
4 E$ T7 o0 t& T* x! }+ |6 F$ J  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERLENGTH; 2 ^2 i" b: D# E) K
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERWIDTH; & I4 e  T* f7 y6 i
  //设定要修改的值 / ?) g) T  [( f8 v0 V! T
  DevMode-&gt;dmPaperSize=DMPAPER_USER;//设为自定义纸张
  @1 E$ o# s2 J( T  F  q. z  DevMode-&gt;dmPaperLength=length;
/ |8 V. _  C8 J  \5 k, L# A9 @  DevMode-&gt;dmPaperWidth=width; </P>
" Q5 |% s2 [1 Y6 }7 t% J<>  //测试打印
' c& N  M2 X' C" G8 E$ F+ [$ D: v3 s# c  Printer()-&gt;BeginDoc(); 9 @6 |; G6 z2 n* x& r+ G
  TextOut(Printer()-&gt;Handle, 0, 0, "-----------------",17);
2 v5 H/ d* M6 S3 j% @  d  Printer()-&gt;NewPage();
" x/ j) L+ I" C+ L; N+ T: U  TextOut(Printer()-&gt;Handle, 0, 0, "++++++++++++++++++",18); 3 [5 N/ f. x8 A4 z  j
  Printer()-&gt;NewPage(); ) K+ U: v) i7 ?6 _" S- E
  Printer()-&gt;EndDoc();
9 r7 o' @9 ~( G# _' l9 R; g  a8 A} </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-4-20 04:24 , Processed in 0.450472 second(s), 52 queries .

回顶部