`
ideage
  • 浏览: 326107 次
社区版块
存档分类
最新评论

DFL Printting!

阅读更多

将打印的代码从DWT,添加到DFL中,从而让DFL拥有打印的功能.

http://wiki.dprogramming.com/Dfl/Printting

DWT的打印写的一般,我添加的就更一般, 以后继续封装,先提供一个可以使用的版本.

1.PrintDocument 封装了打印机和打印文档,提供打印事件,供打印调用.

2.PrintDialog 打印对话框

3.PrintSetting 打印机设置

4.PrintEventArgs 在打印事件中调用的参数,包含执行具体打印的Graphics.

 

NEXT: 提供PrintPreview,PageSetting.

 

使用方法(Test on DMD1.020,XPsp2):

1.下载安装DFL http://www.dprogramming.com/dfl.php

2.将打印模块释放到DFL的目录下,覆盖原有的文件(winapi.d,all.d,makelib.bat),重新编译.

3.用examples目录下的Print.d测试.

 

又修改了,
1.让DFL支持中文字体了! 修改了不支持unicode的windows函数。
2.添加了转换函数:GDI仍然使用像素单位,打印自己使用毫米单位。

 

  1. auto f5 = new   Font("仿宋_GB2312", 14.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER,GB2312_CHARSET,FontSmoothing.DEFAULT); //   
  2.         auto f6 = new   Font("隶书", 16.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);   
  3.         auto f7 = new   Font("宋体", 18.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);   
  4.         auto f8 = new   Font("华文新魏", 20.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);   
  5.         auto f9 = new   Font("楷体_GB2312", 26.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);   
  6.         Color co = Color(0, 0, 0);   
  7.         Graphics gc= pea.graphics;   
  8.         //prd: A4   
  9.         int x,y,w,h;   
  10.        
  11.     x = 12;   
  12.     y = 10;   
  13.     w = 230;   
  14.     h = cast(int)f5.getSize(GraphicsUnit.MILLIMETER);       
  15.         gc.drawText("Hello 中文"~f5.name(), f5, co, prd.mrTpr(Rect(x,y, w,h)) );    
  16.         y = y + h;   
  17.         h =  cast(int)f6.getSize(GraphicsUnit.MILLIMETER);         
  18.         gc.drawText("Hello 中文"~f6.name(), f6, co, prd.mrTpr(Rect(x,y, w,h)) );    
  19.         y = y + h;   
  20.         h =  cast(int)f7.getSize(GraphicsUnit.MILLIMETER);    
  21.         gc.drawText("Hello 中文"~f7.name(), f7, co, prd.mrTpr(Rect(x,y, w,h)) );    
  22.         y = y + h;   
  23.         h =  cast(int)f8.getSize(GraphicsUnit.MILLIMETER);    
  24.         gc.drawText("Hello 中文"~f8.name(), f8, co, prd.mrTpr(Rect(x,y, w,h)) );    
  25.         y = y + h;   
  26.         h = cast(int)f9.size();   
  27.         gc.drawText("Hello 中文"~f9.name(), f9, co, prd.mrTpr(Rect(x,y, w,h)) );    
  28.         pea.HasMorePages =false;   

 

 

  • dfl-20070907.zip (485.3 KB)
  • 描述: dfl-20070907,Unicode DFL 包含Printting
  • 下载次数: 26
  • dflprinting.zip (282 KB)
  • 描述: 20080303,DMD1.027,xp,dfl0.97
  • 下载次数: 2
分享到:
评论
5 楼 ideage 2007-09-07  
DFL Printting更新了,包含了DFL,解压就可以使用OK!
4 楼 ideage 2007-08-29  
harmonia的确很不错,代码结构一流.在作者的map没有print,有空把打印也抄过去.

DFL主要是自己用.XML方言不错,但对于现在的程序,还是不普及吧.而且,开发一个小程序,用那么多XUL,XAML,累啊.
3 楼 sofire 2007-08-29  
只会写简单的QT版 HelloWorld。
前段时间,看过几天,就再没有深入了。
实在是讨厌C++的申明、实现分开的方式。
要是QT转行用D语言开发,我马上去学它。
:)
2 楼 oldrev 2007-08-29  
描述界面可以用一个XML的方言来实现,Mozilla 的 XUL,MS 的 XAML 都是如此。

DFL的网站上似乎说作者在搞GTK的DFL,不过我看不大能成,DFL完全就是为Windows设计的。

GTK和QT我很不喜欢,界面是自己画的,比起 wx 的 native look & feel 要差一些,最好是有交集的控件就用本地的,没有再自画。

看来还是得要用D开发一个OS才顺眼
1 楼 DavidL 2007-08-28  
嗯,不错,有没有人研究QT,虽然调用WINE是一个方法,不过总感觉似乎没有一个本地的实现好,我们这个圈子如果有人熟X的话搞个DFL linux版应该很不错
之前很喜欢harmonia的。以前大致想利用harmonia做浏览器。不过现在我发现其实HTML是个错误的选择。一个不完整的HTML文档(HTML传输过程中)的动态渲染实际上很容易变得buggy,HTML的架构根本不适合做这个事,HTML的描述是静态的并且时期望完整的描述,一个不对称的标签就可以引起很多乱七八糟的问题,前一段时间,一个CSS设置就让IE崩溃了。。把HTML融合到GUI的确有待商榷。或许有一天人们淘汰HTML了呢。

相关推荐

    DFL ST说明书

    DFL-ST II工具是一款由磁动电子科技自主开发的专业ST硬盘固件修复工具,与深受大家喜爱和赞誉的DFL-WD为兄弟产品。 DFL-ST II工具主要针对市面上的7200.7-7200.10系列及11、12代的F3系列的ST硬盘而设计。DFL-ST II...

    DFL-WD中文说明书

    DFL-DE是专业的数据恢复软硬件USB2.0设备,该组件能够对ATA,SATA所有硬盘进行数据恢复,该设备也能够对连接于DFL-WD的SATA端口使用48位寻址方式的硬盘工作,同也也可以对任何操作系统识别的存储装置进行数据恢复。...

    DFL210配置示例

    DFL210配置示例 DFL系列防火墙配置

    DFL for DMD2.031

    《DFL for DMD2.031:深入解析D语言源码与工具的整合应用》 DFL,全称为D Foundation Library,是为D语言(D Programming Language)设计的一个强大的开源库,它旨在提供一系列实用的、高效的、易于使用的模块,以...

    DLINK DFL PPPoE設定方式

    DFL系列防火牆簡易安裝手冊 DFL-210,260,800,860,1600,2500 適用。

    DFL员工福利商业保险项目信息管理系统毕业论文

    《DFL员工福利商业保险项目信息管理系统》毕业论文主要探讨了一种基于B/S架构的保险信息系统设计与实现。本文将详细解析B/S结构的核心特点、系统功能以及在保险业务中的应用,尤其是理赔归档信息、归档信息查询及...

    DFL-WD II Setup_CHS_V2.3.5

    标题“DFL-WD II Setup_CHS_V2.3.5”表明这是一款名为“DFL-WD II”的软件的中文安装程序,版本为V2.3.5。这款软件可能是一个专门针对硬盘修复或数据恢复的工具,因为“WD”通常与西部数据(Western Digital)这个...

    DLINK -DFL系列設定如何阻檔某網站的方法

    DFL系列防火牆如果阻檔URL DFL-210,260,800,860,1600,2500 適用

    Premiere插件DFL2调色插件

    DFL2调色插件 DFL2调色插件 DFL2调色插件

    DFL干膜润滑剂

    ### DFL干膜润滑剂知识点解析 #### 一、产品概述 **DFL干膜润滑剂**是由ELECTROLUBE公司生产的一种特殊白色干膜润滑剂。该产品具有极高的纯净度,适用于不能使用矿物油或硅酮材料的场景。DFL干膜润滑剂能够形成不会...

    D-Link推出DFL-800/1600高性能整合式防火墙

    国际著名网络设备和解决方案提供商D-Link推出区域联防机制,并将其应用在新一代的安全产品--DFL-800/1600高性能 整合式防火墙中,不仅通过在网络安全设备之间建立互动机制,实现对网络安全设备的有效整合,将传统...

    DFL-CNN-master_svm人脸识别_人脸识别_facerecognition_支持向量机_cnn人脸识别_

    在本项目中,"DFL-CNN-master_svm人脸识别_人脸识别_facerecognition_支持向量机_cnn人脸识别_" 涉及到了多种人工智能领域的核心技术,主要包括人脸识别、支持向量机(SVM)以及卷积神经网络(CNN)。下面将详细讲解...

    PyPI 官网下载 | DFL168A-1.0.0-py3-none-any.whl

    标题中的“PyPI 官网下载 | DFL168A-1.0.0-py3-none-any.whl”表明这是一个在Python Package Index(PyPI)官网上发布的软件包,名为DFL168A,版本号为1.0.0。这个包是为Python 3编写的,其构建格式是wheel,且适用...

    如何更改DLINK DFL 的LAN IP

    DFL系列防火牆簡易安裝手冊 DFL-210,260,800,860,1600,2500 適用。

Global site tag (gtag.js) - Google Analytics