基于asp.net平台ps反解原理

来源: 万方数据

广告:阿里云新人专场

基于asp.net平台PostScript文件解析标引系统设计与实现

吴一民朱漾罗绵J

(华南理工大学计算机科学与工程学院广州510640)

摘要:从PostScript文件中提取文字及图片信息,是电子出版领域一个新的研究方向。介绍了在.NET平台下设计的PostScript文件解析、标引系统,首先根据系统的实际需求及当前该领域已有的系统研究设计了标引解析系统的架构及功能;接着采用 了面向对象、计算机图形学及计算机辅助设计等多种技术实现了关键的数据结构及方法;最后采用.NET设计了PostScript文件解析标引系统框架。实践表明,系统具有更好的文件解析质量及更丰富的功能,有效解决了目前市场上同类系统软件的功能匮乏、操作不便等问题。

关键词:PostScript解析标引栅格层

Design and Implementation of PostScript Documents Parsing

Indexing System In.NET Framework

WU Yimin,ZHU Meng,LUO Mianchuan

(College of Computer Science and Engineering,South China University of Technology,Guangzhou,510640,China)

Abstract:Extracting words and images from PostScript documents is a new research in the domain of Electronic—Publish.The paper

introduced a late—model PostScript documents parsing indexing system designed in.NET Framework.First of all,the framework and

the main functions of the system were researched and designed according tO the requirement and the current systems.Then,the pivotal

data—structure and method were implemented with object—oriented technique,computer graphics and computer aided design.Finally,

the framework of the system was implemented in.NET framework..It is approved that the system solved the problem of function and

operation existing in the current similar systems.

Keywords:PostScript,parse,indexing

1 引言

目前,在印刷出版业主要用PostScript(简称Ps)文件来描述印前需要印刷出版的信息:关于PostScript可以参考文献[1]及文献[2,3]。PostScript文件使用的广泛性给通过对PostScript文件的反向解析获得报刊

杂志内容并用于其他非印刷用途提供了可能,即通过提取PS文件中的文字或者图片用于其他的非印刷媒体(如制作网络电子杂志、报纸等)一。。

现在,伴随着网络媒体、电子出版的快速发展,如何开发出一套能够直接将PostScript文件进行解析以进行电子出版的功能完善、性能优秀且具有编辑、发布等扩展性功能的解析系统是目前各电子出版商竞争的

目标。我们在深入研究PostScript文件显示机制、系统需求及目前该领域已有的PostScript解析系统的基础上,设计了一种新的基于.NET平台开发的PostScript文件解析标引系统,该系统综合采用了面向对象、多种

设计模式、计算机图形学及计算机辅助设计技术(CAD),有效解决了已有系统解析效果较差、标引编辑功能缺乏、操作不便等多种问题,系统已经投入实际的数字报纸、杂志系统使用较长时间且效果较好。本文主要介

绍该解析标引系统的系统架构及系统设计中的关键技术。

2 系统结构

2.1系统工作流程

本系统主要用于解析PostScript文件并提取出文件中的文字块、图片块的位置及具体文字、图片内容”1,并对解析提取出的内容重构生成版面的形式,对解析出的数据块进行标引,然后通过文字、图片区域编辑之后最后将数据进行发布,发布的数据可以用于在WEB上显示电子版的报纸或者杂志。

系统的工作流程主要分为四步:①导人PostScript文件及图片文件;②解析PostScript文件得出初步数据;③对解析出的结果进行标引、编辑,或者插入其他元素(音频、视频等);④发布数据。

(1)PostScript文件是系统的主要数据流来源。PostScript文件中包括了需要印刷出版的版面的文字的

内容及坐标、图片的坐标及图片名、图片路径,并可能会以十六进制的形式在文件中嵌入保存图片数据。本系统需要从PostScript文件获取的数据包括文字、文字的坐标、图片的名称及坐标。系统需要导入PostScript文件以获得信息。系统还需要导人版面的底图及版面中的图片,以便在系统中能够进行所见即所得的编辑。

(2)系统在导入了PostScript文件之后需要调用解析模块(系统中设计为解析动态链接库)对PostScript文件进行反向解析。以提取其中需要用到的数据。

(3)系统在经解析模块获得PostScript文件数据及图片文件数据之后,已经获得所有需要获得的数据。 需要对已有的版面数据进行修正、标引、编辑,把相关联的一块块文字或者图片关联在一起组成一篇篇文章,并纠正位置误差,此外可以在该阶段插入音频、视频等多媒体数据,以便在最终的电子版的报纸或者杂志中提供更好的用户体验及更多的多媒体信息。

图1系统工作数据流图

(4)在编辑、标引之后,系统可以对编辑的数据以工程的形式进行保存,或者将编辑好的数据进行发布。

发布的信息可以通过WEB端的发布系统在Web上进行呈现,并最终以网页的形式生成数字的报纸或者杂志。

2.2系统模块结构

根据系统工作流程,将系统按功能进行模块划分,主要包括五大部分,分别是:PostScript文件解析功能、对解析的区域进行编辑功能、对解析出的区域进行标引、工程管理、数据发布。其中每个功能又可划分为各

个小的功能子模块,如编辑功能又可以分为图形平移、旋转、合并等多个功能。

(1)PostScript文件解析模块。解析模块就是对导入的PostScript文件进行解析,获得其中的数据,将数据传给主程序,由主程序进行处理。

(2)区域编辑模块。系统在获得PostScript文件解析数据之后需要在版面上以矩形或者多边形的形式显示出各个文字或图片区域。系统的该功能可以允许对解析出的各个区域进行移动、变形等变换,此外还允许修改区域中的文字数据,区域中的图片来源,甚至允许添加区域或者删除区域。该功能模块与计算机图形学及计算机辅助设计(CAD)结合紧密【6】,需要的子模块包括基本图元模块,点、线及多边形的算法判断模块,消息处理模块,对话框处理模块,系统界面模块等。

(3)区域标引模块。系统在对区域进行编辑完毕之后及之前都可以进行标引及关联操作,标引即对区域进行标注为正文、标题、图片或者其他各种类型。而关联操作则是将一篇文章的标题区域、正文区域及插

图区域关联在一起,系统会以一个包络整个关联区域的大矩形或多边形进行高亮显示,并对关联之后的区域进行标记。标引模块需要的子模块包括工程资源管理模块,消息处理模块。

(4)工程管理模块。系统以工程的形式对导人的数据进行管理,包括新建、保存工程,这样可以更高效地管理数据且易于数据备份。工程一般以一期报刊、杂志或者多期报刊、杂志

为单位。工程中包括了所有需要的数据资源包括页面数、每页的区域块数、区域的坐标、区域之间的关联关系、区域的属性及区域内的数据,系统支持以序列化的方式保存已有的工程,并可以打开已保存的工程

文件。工程管理模块需要的子模块包括系统的文档及框架管理模块、工程资源管理模块、系统界面模块、基本图元模块等。一

(5)数据发布模块。系统在编辑标引结束后可以除将数据以工程的形式保存也可以直接进行数据发布,发布的数据包括发布端需要的数据库数据及图片等文件资源。发布后的数据可以通过发布端进行WEB

发布生成网页上的电子报纸或者电子杂志。数据发布模块需要调用的子模块包括数据库调用模块、工程资源管理模块。系统的模块结构图如图2所示。、

3 系统实现

‰脚度件反制系统功能

I

可卞

主模块

区域编辑区域标引T程管理数据发布

可卞

子模块

图2系统模块结构框图

系统主要在.NET框架下采用Visual C++开发完成,系统的主要功能模块PostScript文件解析模块及部分小模块如图片处理模块、数据库调用模块都以动态链接库DLL进行实现,分别完成特定的功能,DLL模块

与主程序之间通过导出类进行数据交换。

3.1 PostScript解析模块

PostScript文件的解析以一个单独的动态链接库来完成,在系统导入PostScript文件成功后调用该DLL进行解析,DLL由主程序静态进行调用。解析模块对PostScript文件的解析分为预扫描和扫描两个阶段,预

扫描首先解析出目标文件中的基本数据信息如文件合法性、文件所包含的版面页数、每页的区域数等信息。

系统在调用预扫描后获得部分预处理信息,进行初始构造后再调用扫描函数以获得更详细的数据如每个区域的文字信息、图片名等。系统调用该模块的步骤可以分为以下四步:

(1)调用解析DLL的导出类CPs—Parse,传人导入的PostScript文件路径,构造一个导出类的实例以进行后面的调用。

(2)调用解析DLL的预扫描函数,获取目标文件所包含的版面页数、每页所包含的文字区域数、图片区域数。根据预扫描信息构造需要的数据结构。

(3)根据上一步构造的数据结构调用解析DLL的扫描函数,逐一扫描需要获得的某页的某一个文字区域或者图片区域的信息。

(4)根据解析的结果构造工程资源结构,如版面数组、每个版面的区域数组。最后将工程资源在编辑视图中进行显示。

系统调用PostScript解析模块过程可以用UML图进行表示"J,如图3所示。

图3 系统调用解析模块实现模式

3.2工程资源的数据结构及设计模式

系统采用面向对象的程序设计方法(OOD)与工厂设计模式相结合。系统中每个工程为一个最大对象,该对象由CWBook类来表示。CWBook类具有该杂志的相关属性如名称、发布日期、作者等信息,具有该份

报纸或杂志具有的Ps文件的列表及Ps文件数。每个工程中可以包含多个Ps文件,每个Ps文件由一个数据结构CWPsFile来表示。系统以工程的形式保存导入系统的数据,工程一般是一期报纸或者杂志,也可以

是数期。每期的报纸或者杂志有可能是一个或多个PostScript文件,每个PostScript文件一般包括多页(即多个版面),每页又包括多个文字区域及图片区域,系统中的区域以多边形来表示。CWBook类的PS文件列表

中保存了CWPsFile类指针,每个CWPsFile指针指向一个PostScript文件,每个CWPsFile类又具有一个存储该文件所有页的页数组,数组中存放了页数个CWPsSheet对象指针,每个对象指向一个页(版面)。每个

CWPsSheet页对象又包含了该页所具有的区域的列表,每个区域代表一块文字或者一幅图片。每个工程中的图片、文字、视频等信息都分别由该工程的图片工厂CWImageFactory、文字工厂CWTextFactory、视频工厂

CWVideoFactory统一管理,这些工厂需要对管理的资源进行创建、提取、映射及删除等操作。每个工厂实际上包括一个该种资源类型的容器实现的列表及对这些资源操作的相关的方法集合。

采用工厂的设计模式,关键在于客户调用工厂方法时无需关心具体细节。在这里,每个PS文件对象甚至每个版面对象在调用资源时只需要调用公共的工厂接口就可获得对资源的操作,而不用去关心各种资源

的具体实现。类似的设计也包括设计抽象的数据库工厂类,它屏蔽了不同数据库的实现细节,只需调用数据库工厂的公共接口即可实现不同类型的数据库操作。将工厂与面向对象设计相结合使得整个系统的设

计符合实际世界的抽象,便于系统的扩展即用户理解。

系统工程资源的数据结构的UML类图如图4所示。

3.3关联后生成组合区域

系统在解析出PostScript文件中的区域之后在编辑视图中进行显示。对显示出的文字或者图片或者复合区域都可以进行标引、关联。再将多个区域进行关联之后,会生成一个复合区域,再添加到区域列表中。

页结构CWPsSheet中保存了区域列表m_eRegions,它是一个存放IWRegion指针数组的容器。此外还有一个存放分页中当前选中的几何区域列表m—eSelectedRegions,它是一个存放已选中的区域的列表,其中也是存

放了IWRegion指针。与存放普通区域列表的结构m—eRegions区别在于m—eSelectedRegions采用的散列容器进行存放,在处理选中的区域时可以获得更高的响应速度。

在关联操作及解析操作都有用到一个求包络多边形的算法,且都是要根据点集来确定包络多边形博一1。

在解析PostScript文件后获得每个区域的包络多边形的点集来自于每个文字的坐标。在关联操作中获取包络多边形的点集则来自于各个子区域中提取出的点集。这里采用的多边形生成算法综合了已有的Graham

扫描法,并对之进行改进,以获得更好的效果。

对点集生成包络多边形的步骤如下:

(1)获取点的集合,存放在数组中。在生成单区域多边形时,点的数组可以在解析PostScript文件返回的数据中获得。在进行关联标引后生成复合区域所需要的点集可以从单区域类型的方法调用中获得。

(2)对获得的点集运用Graham【I则扫描法,可以获得基于该点集的顺时针方向的凸包。该步骤生成的凸包是对目标点集产生的初步的包络多边形。

(3)根据射线交叉法对产生的凸包进行修正。最后可以得到较为准确的包络多边形。

3.4栅格层编辑

系统的编辑、标引及关联是系统的一个重要功能。编辑、标引以及关联等操作都是对区域的多边形主行编辑。由于从PostScript文件中解析出的区域位置都是经过计算后获得。在将数据及图片等导人系统,『i

区域位置及版面的相对关系需要重新计算。这其中用到了屏幕坐标、PostScript内部坐标及编辑视图中的!

标之间的转换¨“。

区域位置及版面位置等经过转换后可能存在误差,这就要求对区域的位置能够进行批量的改动。系2中针对这一需求采用了区域作为栅格层进行编辑的方法。在解析数据导入系统之后,系统首先会获得版i

的大小,系统将所有区域的包络矩形作为视图中版面区域,并导入版面的底图以便进行所见即所得的可视化编辑。版面的底图在系统中处于底图层,而导人的区域则作为栅格层。将栅格层与底图层分离为编辑i

供了很大的便利。如图5所示,区域都出于栅格层,而阴影区域则为底图层。

4结束语底图——

系统采用面向对象设计(OOD),结合了工厂设计模式(Factory Method)等设计模式,结合了.NET平台的面向组件的编程方法

(cop),较好的实现了需求中的各种功能。系统的特色之处在于对PostScript文件较好的解析质量、Windows风格的界面设计及包

括标引、关联在内的非常便捷的编辑操作等,较之市场上目前已有的类似的PostScript文件解析、标引软件具有更好的PostScript

文件解析质量、更方便的编辑、标引、关联操作及更丰富的功能。

目前该软件针对方正飞腾PostScript的版本已经投入实际使用且稳定运行了较长时间。随着该领域课题的不断深化,相信类似系

统的研究与设计将会得到不断完善。

栅格层一一

图5编辑视图的栅格层示意图

参考文献

[1]史瑞芝,崔元日.PostScript技术概要.今日印刷,1997,(02):46—49

[2]杨浩生.飞腾和PageMaker的Ps文件之异同.印刷杂志,2004,(10):45-46

[3]Adobe Systems Incorporated.Postscript Language Reference.Manual 3rd Edition Massachusetts:Addison—Wesley Publishi

Company.1999.1—2

[4]阳振坤.电子出版系统与PostScript语言.中国计算机用户,1994,(11):10一11

[5]张志伟,孔凡让,吴欣.Postscript格式科技文献中数学表式的提取方法.计算机应用与软件,2008,(11):157—162

[6]朱修清.CAD开发系统的原理与实现.微计算机应用,1992,13(03):31—34

[7]马重明,张学旺,范时平.基于UML的软件体系结构开发方法.计算机工程与应用,2006,42(04):118—120

[8]刘光惠,陈传波.求解简单多边形和平面点集凸包的新算法.计算机科学,2007,34(12):222—226

[9]顾大权,游大鸣,侯太平,周军,袁媛.用凸多边形微量增长法求解TSP.微计算机应用,2005,26(03):262—264

[10]张岩,廖士中.二维凸包Graham算法的设计与实现.牡丹江师范学院学报(自然科学版),1999,(02):l一2

[11]吕志平,朱华统.坐标转换模型的检验及统一表示.测绘学报,1993,22(03):161—167

作者简介

吴一民,男,副教授,主要研究方向为网络软件开发环境,操作系统。

朱漾,男,研究生,研究方向为网络软件开发环境。

罗绵川,男,研究生,研究方向为网络软件开发环境。

基于.NET平台PostScript文件解析标引系统设计与实现

作者: 吴一民, 朱濛, 罗绵川, WU Yimin, ZHU Meng, LUO Mianchuan

作者单位: 华南理工大学,计算机科学与工程学院,广州,510640

刊名:

微计算机应用

英文刊名: MICROCOMPUTER APPLICATIONS

年,卷(期): 2009,30(10)

引用次数: 0次

参考文献(11条)

1.史瑞芝.崔元日 PostScript技术概要 1997(2)

2.杨浩生 飞腾和PageMaker的PS文件之异同 2004(10)

3.Adobe Systems Incorporated Postscript Language Reference 1999

4.阳振坤 电子出版系统与PostScript语言 1994(11)

5.张志伟.孔凡让.吴欣 Postscript格式科技文献中数学表式的提取方法 2008(11)

6.朱修清 CAD开发系统的原理与实现 1992(3)

7.马重明.张学旺.范时平 基于UML的软件体系结构开发方法 2006(4)

8.刘光惠.陈传波 求解简单多边形和平面点集凸包的新算法 2007(12)

9.顾大权.游大鸣.侯太平.周军.袁媛 用凸多边形微量增长法求解TSP 2005(3)

10.张岩.廖士中 二维凸包Graham算法的设计与实现 1999(2)

11.吕志平.朱华统 坐标转换模型的检验及统一表示 1993(3)

相似文献(5条)

1.期刊论文 吴一民.罗绵川.朱濛 PostScript文件文字块多边形生成算法 -计算机工程与设计2010,31(5)

针对利用PostScript文件制作数字报刊的实际应用,提出并实现了PostScript文件文字块多边形的生成算法.先对Post-script文件进行解析,提取出

文字的二维坐标,每一个文字块对应有一个二维点集.运用Graham扫描法,按顺时针方向构造出二维点集对应的凸包.对射线交叉法进行改进,降低运算复杂

性,并运用该算法,对凸包进行整形.生成文字块的多边形,结果与文字块的形状准确重合.

2.期刊论文 尹立云.卢凌云 谈美术课教学后记 -美术大观2009(11)

一直以来,教学后记在美术教学中是不被重视的环节,但据我们多年的教学经验得知,教学后记虽写在教学活动之后,但它承上启下,是上节课教学效果

的评定、质疑和总结,下节课教学内容的提示、预演与解析.

广告:阿里云采购优惠专区

相关内容

编辑:Admin 时间:2012/9/1 7:08:53 阅览:539   返回    
PostScript
ps反解
扫描关注53BK报刊官网
扫描关注阅速公司微信