中国程序员联盟 正在重新改版中ing 不便之处还请见谅 改版后将内容涉及java delphi .net php
 
  首页 | 数据库开发 | 网络通讯 | 多线程 | 多媒体开发 | 图像处理 | 程序人生 | 系统函数 | 控件开发 | Web服务
 
  当前位置:笨鱼delphi技术网>数据库开发>打印报表>文章内容

delphi 打印时改变纸张大小

来源:站内 关于:bill 发布时间:2007-06-23   [收藏] [推荐]

在执行打印前调用以下函数:
procedure SetPaperSize(X, Y: Integer);
// 单位是0.1mm
// A4时 Printer.Pagewidth:=1440;  A5时 Printer.Pagewidth:=1049;
// B5时 Printer.Pagewidth:=1290;  16K时 Printer.Pagewidth:=1035;
// lq1600宽行打印机这个值宽度最大为42cm左右, 长度大约2m。
//改变devicemode结构
var
  Device: array[0..255] of char;
  Driver: array[0..255] of char;
  Port: array[0..255] of char;
  hDMode: THandle;
  PDMode: PDEVMODE;
begin
  Printer.PrinterIndex := Printer.PrinterIndex;
  Printer.GetPrinter(Device, Driver, Port, hDMode);
  if hDMode <> 0 then
  begin
    pDMode := GlobalLock(hDMode);
    if pDMode <> nil then
    begin
      if (x = 0) or (y = 0) then
      begin
        {Set to legal}
        pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
        {pDMode^.dmPaperSize := DMPAPER_LEGAL; changed by wulianmin}
        pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
      end
      else
      begin
        {Set to custom size}
        pDMode^.dmFields := pDMode^.dmFields or
          DM_PAPERSIZE or
          DM_PAPERWIDTH or
          DM_PAPERLENGTH;
        pDMode^.dmPaperSize := DMPAPER_USER;
        pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
        pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
      end;
      {设定纸张来源}
      pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
      pDMode^.dmDefaultSource := DMBIN_MANUAL;

      GlobalUnlock(hDMode);
    end;
  end;
  Printer.PrinterIndex := Printer.PrinterIndex;
 
//以下开始打印
  Printer.BeginDoc;
  Printer.Canvas.TextOut(100,100, 'Test 1');
  Printer.EndDoc;
end;


[浏览: 次]   
上一篇:delphi 获取打印机状态   下一篇:delphi 判断打印机能否打印的PostScript
[收藏] [推荐] [返回顶部] [打印本页] [关闭窗口]  
    评论加载中…
google adsense热点文章
·delphi 获取打印机状态
·delphi 判断打印机能否打印的PostScrip
·delphi 检测存在打印机
·delphi Tmemo,TstringList,Tstrings打
·delphi 如何保存打印机信息到注册表
·delphi 判断系统是否有打印机连接
·delphi 在打印中间改变打印设置
·delphi 使用打印机内置字体打印
·delphi 获取打印驱动,打印端口名
·delphi 改变打印机的打印端口
·delphi 打印LabelsVCL组件
·delphi 如何发二进制字符到打印机
     delphi技术网 | firefox 下载 | Avant Browser下载 | dedecms 技术网 | drupal 爱好者 | php 技术网
  Copyright@www.delphichm.com,2006-2009.All Rights Reserved.
 
程序员联盟 | delphi Java .net|QQ:707102932