正在阅读:Delphi开发WEB应用程序打印组件Delphi开发WEB应用程序打印组件

2004-04-06 09:51 出处:delphi精髓网 作者:delphi精髓 责任编辑:sdq

五、代码解析 

  在这个组件中,我们所要解决的几个问题: 

  (1)、在delphi的应用程序设计中自定义打印纸张的设置,delphi中自身带了一个quickreport的打印设计程序,这个程序在一定的程度上方便了打印的设计,但这个设计程序对于自定义纸张的设定和打印支持却不是很好。因此,在这个组件中我们采用手工代码来设定自定义纸张大小。

            function tprttest3.initprintpaper:boolean;
            var
            device:array [0..cchdevicename-1] of char;
            driver:array [0..(max_path-1)] of char;
            port:array [0..32] of char;
            hdmode:thandle;
            pdmode:pdevmode;
            begin
            result:=true;
            if prtiscustompaper then
            begin
            {设置打印机段}
            printer.getprinter(device,driver,port,hdmode);
            if hdmode<>0 then begin
            try
            pdmode:=globallock(hdmode);
            if pdmode<>nil then begin
            //设定打印的方向为纵向或横向
            if paperorientation<>0 then
                     pdmode^.dmorientation:=dmorient_landscape
            else pdmode^.dmorientation:=dmorient_portrait;
                   //设置拷贝份数为1份.
            pdmode^.dmcopies:=1;
                   //以毫米为单位的纸张大小.
            pdmode^.dmpaperlength:= paperheight*10;
            pdmode^.dmpaperwidth:=paperwidth*10;
                   //设置纸张类型为用户自定义.
            pdmode^.dmpapersize:=dmpaper_user;
            end;
            globalunlock(hdmode);
            printer.setprinter(device,driver,port,hdmode);
            except
            result:=false;
            end;
            end else begin
            result:=false;
            end;
            end;
            end;
            Delphi开发WEB应用程序打印组件(4)

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品