XPS文档版式处理技术的应用与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:maxfree99999
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:XPS(XML Paper Specification)格式将是Microsoft Windows Vista中用于电子文档发布的首选格式,是继PDF文件格式之后的一种新的输出文件类型。在微软和各大印刷硬件厂商的支持下,XPS将有望超越PDF成为全球电子文档发布的开放式标准。本文针对XPS文档的几种快速页面处理方法给出了设计方案与实现。
  关键词:XPS;页面处理;缩放;旋转;反转
  中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)03-10748-02
  
  1 引言
  
  电子文档已经改变了人们发布和交流信息的方式。虽然很方便,但是这一过程并不是完美无缺的。对于当今的软件,文档通常在屏幕上显示为一种方式,而打印时又显示为另一种方式。许多电子文档格式依赖于本地安装的软件、字体和其他资源。在不同的计算机上查看文档时,文档会显示成不同的页面布局,图像颜色和字体风格都有可能发生变化,从而改变了文档的外观。因此,从来的文档的外观在很大程度上取决于查看文档的位置和方式。
  Microsoft正在利用下一代操作系统Vista的新技术作为平台,开发了一系列文档的技术解决这些问题,该技术将包含在 Windows Vista 之中。这项新技术的组成部分之一是 XML Paper Specification (XPS)。XPS技术使作者能够确信下一个查看或打印其文档的人将看到与作者的意图完全相同的文档。
  更为重要的是,XPS Document 是由一个基于 XML 的语言描述的固定格式文档。XPS使用一个公开发布的规范描述这一格式,该规范可以无偿使用。由于不是私有文件格式,而且免费地使用,XPS格式文件的普及以及直接支持XPS格式的扫描印刷设备的涌现将成为定局。随着XPS成为发布电子文档格式的标准,针对适合于维护电子化页面视图描述XPS文档格式的文档印前页面处理技术已经成为研究的方向。
  电子文档页面处理的范畴很广,旋转与缩放是基本的电子文档布局处理之一,当用户的打印机或驱动不支持缩放,或者不能调整输出纸张的纵横与正反的时候,就有可能需要用软件方式缩放,或旋转XPS文档的某个页面,实现电子文档的印前处理,简化印刷工作流程。
  XPS从设计上就没有想到它有可能被编辑,如果使用微软公布的API,对XPS文档页面的任何的细小的修改将导致整个文档的重新生成,效率上十分不经济,这限制了它的应用。本文介绍的XPS格式的页面处理技术,利用了其页面描述语言XAML的特性,由于不涉及文档结构的修改,它们可以在XML级别实现。是一种与编程语言,操作系统无关的页面处理技术。
  下面将阐述XPS文档格式的结构,然后以页面的缩放,旋转,反转,平移4个基本的应用为例,提出对XPS格式的电子文档版式处理的解决方案。
  
  2 XPS文档结构
  
  XPS文档的压缩遵循着Open Packaging Conventions (OPC)规范。从文件物理结构上说,XPS Document 是一个压缩的ZIP存档文件包,通过工业标准的ZIP压缩,可以挽回一些由于它使用基于XML语言从而产生的空间效率的浪费。XPS文件包具有规范的物理和逻辑组织。物理组织包含包中的文档部件和文件夹,而逻辑组织是由文档部件描述的层次结构。XPS的规格描述中详尽中定义了一组逻辑层上的命名规则规范。
  XPS Document 的部件以一个逻辑层次结构进行组织,其中 FixedDocumentSequence 部件位于顶部。XPS文件包可能包含多个固定格式文档(FixedDocument),而且这些文档的顺序由 他们在FixedDocumentSequence中的位置决定。FixedDocumentSequence引用 FixedDocument,后者进而引用该包中每个文档的页面(FixedPage)。每个 FixedDocument将该文档的页面作为 FixedPage引用。每个 FixedPage 部件都包含该文档中页面的文本标记和布局,以及对该页中使用的图像、字体和其他资源的引用。
  图1 XPS Document的逻辑层次结构的例子
  FixedPage的页面布局描述语言使用的是一个XAML的子集。XAML是Microsoft针对下一代应用程序界面的开发而定制的一种全新的标记语言。XAML引入强大的XML语言的扩展优势,将图形界面的元素通过一种全新的方式进行正确地配置。正是由于使用XAML作为页面描述语言,使得XPS的页面布局的表现能力与表现精度上远远超越传统EMF图元文件格式以及印刷业界广泛使用的PostScript格式。
  
  3 XPS页面处理
  
  3.1 FixedPage的语法格式
  要实现XPS文档的页面旋转缩放功能,就需要查看XPS格式说明书,了解FixedPage节点的定义描述:
  图2 FixedPage标签的XML语法定义及其属性意义
  其中,FixedPage的各属性的描述如下:
  3.2 页面处理原理
  FixedPage的所有子节点就是描述这个页面布局的可视化元素,为它们嵌套上一个带有合适的变换矩阵RenderTransform的Canvas标签以后可以改变页面布局,实现页面旋转,缩放和反转功能。Canvas是一个抽象的用来将组合图形元素的标签。它可以用来描述其包含的所有描画元素的公共特性,如位置,背景,大小等。
  这个带有RenderTranform属性的Canvas标签形式如下:
  
  被RenderTransform的Canvas标签含有的元素的坐标系将作下面的变换,原坐标系中的(X,Y)将被变换为(X',Y'):
  用于确定RenderTransform矩阵可以通过缩放矩阵S,旋转矩阵R,反转矩阵C,与平移矩阵T这4个变换矩阵乘积计算得到的。
  其中,各个变换矩阵可以通过如下计算得到。
  (1)缩放矩阵的确定
  (2)旋转矩阵的确定
  (3)反转矩阵
  
  4 平移矩阵的确定
  
  对页面可视化元素作缩放,旋转,反转等版面变换之后,原来的页面的某个部分有可能伸展到可视区域之外,这时就需要将它们平移回可视区域中。
  平移矩阵
  虽然,页面内容的旋转可以靠给FixedPage的页面布局元素嵌套一个坐标转换矩阵的Canvas实现。但是,FixedPage的以上的4个属性(Width,Height,ContentBox,BleedBox)的坐标值不受嵌套的Canvas的约束,需要另行修改其值。其中,可视区域与剪裁区域在计算机屏幕上显示的时候没有意义,但是如果显式定义了,作为打印设置会被使用到。
  缩放,旋转或者反转等页面处理的时候可以采取以下两种方式的一种来决定这两个区域:(1)相应调整它们的位置和大小保持它们与页面的相对位置不发生变化;(2)将这两个区域的显式定义删除,打印系统将把它们的区域解析为与FixedPage区域相同。
  3.3 XPS页面处理流程
  下面给出的针对XPS格式的电子文档页面处理的具体流程。
  
  5 结束语
  
  灵活利用以上版式处理方法,无需原文本格式的文件作再发布,就可以实现对XPS文档的页面版式的再调整。将文档付诸打印之前,完成如将多页合并到一页,或按纸张大小缩放等电子文档的版式调整。此文提出的页面处理技术是利用XPS的页面描述语言XAML的特性,在XML级别实现页面内容的变换处理,无需再次生成文档,是一种与编程语言和操作系统无关的XPS高速页面处理技术。在大批量处理XPS文档页面格式的场合,速度优势更加明显。
  参考文献:
  [1] Ian Griffiths & Chris Sells, Programming Windows Presentation Foundation[M]. O'Reilly and Associates, 2005.
  [2] Microsoft Corporation. XPS Specification and Reference Guide[S]. http://www.microsoft.com/whdc/xps/default.mspx, 2006-10-18/2006-11-16.
  [3] Brent Rector. Introducing "Longhorn" for Developers[EB]. http://www.microsoft.com/japan/msdn/longhorn/introducing/longhornch01.asp.
  [4] Bob Watson. A first look at APIs for creating XML Paper Specification Documents[EB].http://msdn.microsoft.com/msdnmag/issues/06/01/XMLPaperSpecification/default.aspx.
  本文中所涉及到的圖表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:本文首先应用最小二乘误差补偿算法来校正磁强计的航向角,这样可以提高系统的定姿精度;然后再利用校正后的姿态角信息来应用到GPS快速定姿中,将校正后的姿态角信息应用到多分辨率算法中,能够大大提高系统的快速性和姿态角的精度。  关键词:电子磁强计;GPS;姿态确定  中图分类号:P228 文献标志码:A 文章编号:1009-3044(2007)03-10740-02    1 引言    电子磁强
期刊
摘要:CDP协议是一种基于UDP协议之上的TCP协议实现,该协议同时具有TCP协议的通用、高效,和UDP协议的高NAT穿透成功率,可用于很多P2P网络应用的构建。  关键词:P2P;CDP;NAT 穿透;基于UDP的TCP  中图分类号:TP317文献标识码:A 文章编号:1009-3044(2007)03-10736-02    1 引言    随着互联网应用广泛推广,基于各种P2P网络技术的产
期刊
摘要:对校园网中存在安全隐患的网络边界实施“端点准入”认证机制的方法进行了研究,详细分析了基于802.1x的认证机制的工作原理及其体系结构,提供了在linux上实现此种认证机制的方法。  关键词:802.1x;端点准入;Linux;RADIUS  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10684-03    1 引言    “端点准入”是指对接入网络的用
期刊
摘要:能让网站上的天气预报自动更新,不仅可减轻网站维护的工作量,还可使用户享受到准确、及时的天气服务。该文论述了如何通过开放的、支持多种协议的Windows下的网络编程接口WinSock,用VB编制一套程序,定时自动从中央气象台网站上下载气象信息,用于自己的网站。使访客能及时得到所需的天气信息。  关键词:WinSock;网站;VB  中图分类号:TP311文献标识码:A 文章编号:1009-30
期刊
摘要:本文详细介绍为通过拨号上网的用户分配私有IP地址,再通过路由器NAT技术进行转换,结合AAA技术对拨号上网用户进行身份认证的综合解决方案,在互联网中具有广泛应用空间。  关键词:拨号;NAT;AAA;路由器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10718-02    1 引言    随着互联网技术的高速发展,互联网用户的数量急剧增加,加快了信息
期刊
摘要:自从八十年代末期简单网络管理协议面世以来,网络管理技术在短短的十几年里得到了突飞猛进的发展,网络管理技术正逐步成为网络构建和维护中必不可少的重要因素。本文主要介绍了Socket通讯原理及其通讯方式[3],并对SNMP协议通信原理进行了论述,最后实现了一种基于Java的SNMP协议的接收和发送报文的Socket通讯。  关键词:SNMP;Socket;同步;异步  中图分类号:TP393.03
期刊
摘要:面向方面编程(AOP)是面向对象编程(OOP)的一种扩展技术,能够很好的解决横切关注点问题,使得大型软件的设计和实现都能保持功能分离,解除代码耦合。采用AOP技术设计的软件,功能划分清晰,代码保持独立,系统维护简单。Spring AOP是AOP技术的一种实现技术。  关键词:Spring;AOP;Java;框架  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)0
期刊
摘要:Koch分形曲线是分形图形中一种较为典型的平面曲线。本文对Koch分形曲线算法进行深入研究,并把其推广至树形分形曲线、矩形分形曲线等分形图形,实践证明这种算法的执行效率较高。  关键词:分形图形;Koch分形曲线;算法  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10751-02    1 引言    分形图形是计算机图形学中研究的对象之一。因为日常生
期刊
摘要:在相关理论分析和研究的基础上,设计并实现了一个基于纯P2P平台的包含文件共享、远程计算调用以及共享白板的应用。该应用使用数据对等传输,避免了传统传输方式下服务器引发的瓶颈问题,具有良好的共享和协作计算能力。  关键词:P2P;文件共享;远程计算调用;白板  中图分类号:TP317文献标识码:A 文章编号:1009-3044(2007)03-10726-03    1 引言    早期的互联网
期刊
摘要:本文对在Visual C++6.0的MFC程序设计过程中,通过实例形式,给出了三种全局变量和全局函数的三种基本方法。  关键词:MFC;全局变量;全局函数  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10766-02    1 引言    在教授学生使用Visual C++6.0中的MFC基本应用时,由于MFC制作的工程由很多文件构成,它不能象一般C+
期刊