D语言打印forDFL

感谢Chris发布了DFL :idea: ,使用后发现没有打印功能,遗憾之后,不敢奢望,只好自己干。而在第一个版本的DFL Printting后,终于有时间,完成了第二个版本。每天匆匆编程,完成了不敢自专,抽空写出文档,功能太少,目标也太小 :D ,欢迎大家指正。

本次版本,主要亮点:
1.把所以的代码集中到一个文件,包含测试,直接可以运行,0配置! :idea:
2.提供了打印预览的窗口,当然,还在测试中。 :idea:
3.提供了打印对话框
4.打印纸张设置,Win9x没有测试。 :idea:
5.使用可以类似于DWT的打印,也可以类似于dotNET里面C#的打印。 :idea:

打印要了解的东西太多了,但看大师信手拈来,随意挥洒,就成就了打印的机制.看《Windows程序设计》,对打印描述也很简单。看了些代码,也修改了一个DWT的使用,但总觉得不了解机制不行,不了解底层不好。所以决心在以前修改的基础上,再抽丝剥茧,去粗取精,就有了现在的DFL Printting。

一.GDI的打印原理:GDI打印很容易,过程
1.取得打印机DC
2.使用StartDoc,启动打印文档。
3.循环使用StartPage,EndPage,在中间使用GDI函数画出打印页面。
4.使用EndDoc,结束文档。

说的都很简单,用的时候却不容易。

二.DFL的GDI封装
1.DFL GDI封装在drawing命名空间。封装了Graphics,字体,颜色,刷子,画笔,位图等。
Graphics封装了多数的绘图函数,使用简单,在Form中可以通过OnPaint中取得桌面的Graphics,直接在窗口进行绘图。
2.打印主要要用到Graphics,字体,画笔。
3.打印预览要用到位图,位图的复制,DFL封装了一个MemoryGraphics,可以完成这个工作。

三.DFL Printting封装
1.打印设置 PrintSetting
目前提供了打印的页码范围,打印的纸张大小,副本,但目前都没有使用。
2.打印对话框 PrintDialog 继承于通用对话框。
3.打印机 封装了Win32打印API,提供了纸张设置函数。
4.打印文档 PrintDocument,提供打印文档功能。只要继承或者实例化一个打印文档,在打印文档的printPage事件中调用Graphics的函数,进行绘图,实现打印。
5.打印文档也提供了printpreView,进行打印预览。


下一步:
1.完善打印设置:在打印设置后,在打印文档中,根据设置进行打印。
2.更多测试。


:arrow: 致谢
Walter Bright,D Program Language
Chris,[url]www.dprogramming.com/dfl.php[/url]
Stewart Gordon,Win32 Binding
Charles Pelzold 《Windows程序设计》


代码测试后发布了!
缩放还有问题.本来用Picture,发现预览无论如何也不行.只好直接绘图预览了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值