说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi文本和图形的打印方法

HTML文档下载 WORD文档下载 PDF文档下载
Delphi文本和图形的打印方法

一、基本知识

1、在代码单元的Uses部分增加Printers,打印实际上是把要打印的内容画到tprinter的canvas画布上。

2、选择输出的打印机:printdialog1.execute

3、选择打印控制选项 printersetupdialog1.execute;

二、打印文本

//打印Memo1中的内容

procedure TForm1.BitBtn1Click(Sender: TObject);

var

lines:integer;

prntext:text; 定义打印文本变量

begin

if printdialog1.execute then

assignprn(prntext); //将prntext文件分配给打印机

rewrite(prntext); //打开prntext文件

printer.canvas.font:=memo1.font; //设置打印对象的canvas的字体

for lines:=0 to memo1.lines.count-1 do

writeln(prntext

memo1.lines[lines]); //把Memo1的内容写到打印机对象

system.close(prntext); //关闭打印文件

end;

三、打印图形

1、利用打印机的分辨率,图形将打印在页面的左上角,图形较小。

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if printdialog1.execute then

begin

printer.begindoc;

printer.canvas.draw(0

0

image1.picture.graphic);

printer.enddoc;

end;

end;

2、利用打印机画布canvas的stretchdraw方法

可以对图形进行更为灵活的处理。

其中要用到一个代表图形输出区域的Rect参数

Trect的类型定义如下:

TRect = record

case Integer of

0: (Left

Top

Right

Bottom: Integer);

1: (TopLeft

BottomRight: TPoint);

end;  

例:通过调整Rect的范围、图形大小及其在打印页面上的位置,实现图形打印:

procedure TForm1.Button1Click(Sender: TObject);

var strect:Trect; //定义打印输出矩形框的大小

temhi

temwd:integer;

begin

if printdialog1.execute then

begin

temhi:=image1.picture.height;

temwd:=image1.picture.width;

while (temhi<printer.pageheight div 2) and //将图形放大到打印页面的1/2 (temwd<printer.pagewidth div 2) do begin

temhi:=temhi+temhi;

temwd:=temwd+temwd;

end;

with strect do //定义图形在页面上的中心位置输出

begin

left:=(printer.pagewidth -temwd) div 2;

top:=(printer.pageheight-temhi) div 2;

right:=left+temwd;

bottom:=top+temhi;

end;

with Printer do begin

begindoc; //将放大的图形向打印机输出

canvas.stretchdraw(strect

image1.picture.graphic);

enddoc;

end;

end;

end;

成功的社区在于拥抱变化——知乎创始人周源专访 优化UITableViewCell高度计算的那些事 国外iOS大牛:开发Apple Watch应用我犯过的错 云上Java System Profiling与Debugging——蚂蚁金服观察与实践 搜狗商业平台Java技术实践 Java在电信软件领域的技术实战 关于Java框架Vert.x的几点思考 Java在游戏服务器开发中的应用 Java框架研发思考 那些年,Java程序员用过的开发工具 Java内存模型的历史变迁 Java 8与Apache Ignite Java开发与技术挑战——关于技术的技术思考 专访唯品会架构师肖桦:做编码的架构师 越来越“简单”的Java 我的Java!越过山丘 专访沙梓社:做个“Think Different”的技术牛人 基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用 财税街创始人石克清:创业须空杯心态+有效社交 自我知识管理:连贯性就是生产率 玩转Google I/O 2015:Android M、IoT、Glass 2.0、VR、ATAP ARC中Retain Cycle揭秘 失控与逆转!企业移动化2.0时代下如何求变? 玩转物联网之MQTT 专访都灵创客教育奚炎:被忽视的Maker教育 13岁iOS开发者:Swift开发Sprite Kit游戏实践 专访豌豆荚「自动装」开发团队:无需Root即可批量点击「下一步」 iOS项目的持续集成与管理 《近匠》谛听科技,探索智慧家庭的智能网关 【简讯】Python 3.5.0b1发布 《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀 请教,关于“name not Unique in this context”的错误。50分,急!!!! 请教一个小问题 显示属性打不开? 购买QQ,共1000分(2) 很简单的问题,最好详细写listput 这个组件怎么用? 80分够不?在线等待中。 改好了告訴我一下,等0點去機房,這邊的認證服務器不動了,VMS系統我不懂 MIDAS 高手请进,这个问题在大富翁上出了600分,也没人拿到,难道真的没人明白吗? 女儿三岁生日,酬宾 关于PHP GD库的问题. jsp主要做什么的?菜鸟问题 为什么会重复显示两次? 怎样恢复类! 有没有人可以帮我的,55 如何把DBF文件导入到SQL2000里? 我想将一个字符串(用户密码)加密,有没有好的算法,请大家指教 熟悉化境编程界HTTP上传程序的请进! 我想将一个字符串(用户密码)加密,有没有好的算法,请大家指教 局域网搜索时,怎样连上要搜索的机子 如何分辨用户是通过在URL栏输入地址,还是点击链接来到本站网页。 好了,我把数据库清理一下,你继续改那几个参数,LOG文件太大先不要管 问题! “多步 OLE DB 操作产生错误。。。”怎么解决?? 急!!! 哪里有内存泄漏检测工具? 请问如何将80*60象素的图片文件转换为120*90象素的图片文件 哪位兄弟试过把csdn的文档里面的文章全部下到本地看的? APL和DOL表的区别?在系统中怎样设置(运用)?最好有示例。多谢先! 如何在一个函数内部知道这个函数的名字? “多步 OLE DB 操作产生错误。。。”怎么解决?? 急!!! _RecordsetPtr对象的Find方法怎样用? 等會過來喝點咖啡吧,今天晚上一定要測完 一个简单的fork问题(那个高手来帮忙呀) 一个关于安装的问题 在VC中用什么函数运行一个程序?像vb中的shell.比如运行QQ.exe 继续散分 急招游戏软件合作伙伴(美国项目外包) 有关更新表中的记录,有没有简洁的办法? 散分的理由 那位大侠能告诉我这是什么原因。Error 404--Not Found 研究生题目,大家试试,帮帮忙 新手问题! 请教EXCEL的公式问题? (高手请问:)linux下访问非本网段的一台主机 哪位兄弟试过把csdn文档栏目里面的文章全部下到本地看的? 哪位高手有中国象棋棋盘控件的开发文档 如何用VB自己做控件? 用 SQL SERVER 连接数据库的问题 谁给我发个2000的boot.ini文件?谢了!在线等 如何得到一个Sql server2000里面所有的数据库? sendbuf的问题 电脑在运行是突然自己重起是为什么? JAVA程序员成长之路 新概念英语第一册45课怎么做 英语翻译函数关系应用在生活的方方面面,然而许多函数变量间变化复杂,根据已知数据求函数的表达式很困难.这就需要应用求近似函数的一种重要方法——插值法.通常采用简单易计算的数多 英语翻译家庭结构理论认为家庭结构就是家庭成员的角色分工,其间具有某种性质的联系,怎样相互配合与组织,相互作用与影响,以及这种相互作用和影响而形成的家庭模式类型.依社会学与人 英语翻译AbstractThe banking industry changed substantially in the 1990s as the number of banks declined rapidly,and as we document,commercial banks dramatically shifted their assets to real-estate loans.The portfolio restructuring seems to be fol 魔法少女小圆 红蓝角色歌and I‘m home it is a __practice to bring a present to the hostess when one is invited to dinner.A normal B ordinary C usual D common选哪个?理由? punching是什么意思? given in chinese是什么意思 英语翻译 英语中dog有时候是人的意思.为什么 比如lucky dog 古典的、糟糕的、难以置信的、最喜欢的、幸运的、受欢迎的、极差的、精彩的 以上是褒义词还是贬义词?还是中性词? 纽交所黄金期货市场1日交投最活跃的1洛杉矶机场枪击案1人死亡多人受伤 航纽约油价1日下跌北京一周三发重污染预警 13省市雾霾北京将迎冷空气救场驱雾霾 北风吹出蓝洛杉矶机场枪击案1人死亡多人受伤 航巴基斯坦塔利班首领在美军无人机空袭中美国洛杉矶国际机场发生枪击事件洛杉矶国际机场发生枪击事件 嫌犯被执墨西哥对垃圾食品征税8%英拟对外国购房者增税补赤字全国首个“青少年事务社工学院”在深圳世界9球中国站正赛开杆 “九球天后”男子徒手挖出8斤重金块 价值126万中国空军“飞豹”战机实现复杂战场环境专注音质 爱国者录音笔R5511记录风投机构聚焦东北老工业基地振兴成都闹市一大厦爆破拆除 18层高楼瞬巧搭便车 “绍兴故事”惊艳亮相北京国杨方旭获我省第一枚集体项目奥运金牌 山东多地迎降雨降温 济南发布大风蓝色四川警方破获侵犯公民信息系列案 涉案
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘