全文预览

EMF虚拟打印机实现

上传者:业精于勤 |  格式:doc  |  页数:24 |  大小:29KB

文档介绍
文档名起始位置的偏移值,这是一个UNICODE字符串;offPort是从文件头开始位置到打印端口名起始位置的偏移值,这也是一个UNICODE字符串;从这个文件头结束的位置开始就是SPL的记录信息(也就是从文件开始偏移nSize个字节后的位置)。每一条记录信息都有一个标识记录类型和记录长度的记录头,这一点和РEMF中的记录结构形式上一样。结构如下:Р typedefstructtagSMR{Р DWORDiType;DWORDnSize;}SMR,*PSMR;Р 注意与EMF文件格式一样,这个nSize是不包含记录头的长度,单指记录体的长度。其中iType是记录类型,SPL文件主要有字体、设备模式、EMF文件记录等几种类型。定义如下所示:Р #defineSRT_FONT10x00000002/*2字体数据*/Р #defineSRT_DEVMODE0x00000003/*3设备模式*/#defineSRT_FONT20x00000004/*4字体数据*/Р #defineSRT_FONT_MM0x00000006/*6字体数据*/#defineSRT_FONT_SUB10x00000007/*7字体数据*/#defineSRT_FONT_SUB20x00000008/*8字体数据*/#defineSRT_PAGE0x0000000C/*12图元文件(EMF)*/Р 对于需求来说其他记录类型不太关心,着重关心的是Р SRT_PAGE这个类型的数据。因为这个类型的数据记录了标准Р 的EMF文件记录。从实际的情况来看当遇到一个SRT_PAGE类型的记录同时记录体长度nSize为零时表示SPL文件的结束。Р 2014.13Р 简单来说SPL最开始是一个文件头;接着文件头的是一条一条的SPL记录;SPL记录由记录头和记录组成,记录头里标明的长度不包括记录头的长度;当遇到一个记录类型为

收藏

分享

举报
下载此文档