技术白皮书
(初稿)
袁永福
2007-11-5
前言
yyf9989@hotmail.com
电子邮件yyf9989@sohu.com
袁永福个人 站http://www.xdesigner.cn
基本概念
微软.NET图形开发
微软.NET平台是微软主导的软件开发平台,一定程度上代表着国际软件业的先进生产力,微软.NET提供了很多先进的特性,其中包括了相当强的图形开发功能。
虽然微软.NET对图形开发提供了更强的支持,仍然保留了对传统的Win32API/GDI的支持,在少数情况下仍然可以调用Win32API/GDI来实现一些图形效果,比如屏幕像素的反色,光标的处理,文字输入法的控制。
文档对象模型
文档对象模型是面向对象编程思想在处理复杂文档的一个范例,其基本工作原理是:使用一个个内存中的编程对象映射到文档中的某个部分或元素,比如使用一个字符元素对象映射到文档中的一个字符,图片元素对象映射到文档中的一个图片。则应用程序读取和修改内存中的编程对象的数据,经过这些映射关系就转化为读取和修改文档内容。
RTF文档格式
RTF文档存储格式比较简单,但内容比较多,它使用一对花括 来定义一个标签组,标签组可以套嵌定义,使用一个斜线 “”来开始定义一个标签或指令。RTF文档中就使用这种简单的标签格式来定义文字,段落和图片等信息。
关于RTF文档格式的详细内容可参考微软提供的RTF文档技术手册。
XWriterLib介绍
XWriterLib开发背景
XWriterLib介绍
- 和微软.NET软件无缝集成的能力。XWriterLib完全用C#开发,全部采用托管代码来实现,因此可以和任何基于.NET平台的软件进行无缝集成,从而进行密切的协同工作。应用系统可以使用C#,VB.NET,C++.NET,DELPHI.NET或其他支持.NET的语言进行开发,但都可以轻松的调用XWriterLib。XWriterLib暂不支持MONO。
XWriterLib技术说明
XWriterLib涉及到了很多的计算机软件开发技术,其中包含了不少高级开发技术,此处对其中的某些技术进行说明,方便开发者了解一些XWriterLib内部的技术细节,使得能更充分的调用XWriterLib的能力。
XWriterLib文档对象模型
XDOM内部建立了一个树状结构来详细描述文档结构,包括文档结构框架和各种细节信息,而且考虑到二次开发而开放了很丰富的编程接口,该接口的开放程度远大于MS Word或RichTextBox的编程接口。开发者可以使用XDOM接口来访问文档中的任何信息,而且可以在标准的XDOM上面派生出自定义的文档元素类型,新的文档元素类型可以扩展或重新定义标准文档元素的内容,图形样式和操作特性。
XDOM中比较重要的文档元素类型有
XTextElement文档元素基础类型
本类型是文档元素基础类型,所有的文档元素类型,包括XWriterLib中已经定义的文档元素类型还是未来开发者自定义的元素类型,必须是直接或间接的从XTextElement继承过来的。该类型定义了一些文档元素的通用接口,还包括文档元素在文档中的位置大小等基本信息。开发者可以使用这种类型来遍历文档中任意对象。
该类型是抽象类型(在C#中为 abstract 类型),因此不能实例化,只能从其上面派生出实际使用的文档元素类型,派生的类型需要重载其中的某些成员,用于支持自己的绘制过程和操作特性。
XTextElementContainer 容器元素类型
本类型是直接从XTextElement上派生的元素类型,它内部能放置若干个其他的文档元素,还能放置其他的容器元素。
XTextDocument 类型
XTextElement,XTextElementContainer和XTextDocument三种类型共同构成了XDOM的基本框架,形成已一个已XTextDocument为根节点的树状结构。外部程序以XTextDocument为入口点来访问整个XDOM。
在XDOM的基本框架上,XWriterLib还定义了一些常用的文档元素类型,主要有
XTextChar字符类型
XTextChar文档元素类型表示文档中的某一个字符,包括空白字符,文档中所有的字符都对应于一个XTextChar对象,因此应用程序可以使用XTextChar类型来快速而精确的访问文档中的任何字符,可以获得和修改单个字符的显示样式,包括字体,颜色,上下标等设置。
XTextImage 图片类型
XTextImage文档元素类型表示文档中的某个图片,并支持鼠标拖拽来改变图片大小。
XTextBookmark书签元素类型
XTextBookmark书签元素类型插入在文档中的某个地方,用于用户快速切换到书签所在的文本部分。
XTextParagraph 段落元素,XTextParagraphEOF 段落结尾类型
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!