一、什么是XPS
XML Paper Specification(XML文件规格书),是一种电子文件格式,使用者不需拥有制造该文件的软件就可以浏览或打印该文件,为微软对抗Adobe PDF格式的利器。微软的办公室软件Office 2007将提供XPS可携式文件格式的文件储存功能,包括Word、Excel、PowerPoint、 Access、Publisher、Visio、OneNote、及InfoPath等应用程序所保存的档案都可以存成XPS 二、为什么使用xps
在单位网站中,很多人员对页面的编辑都是先用Word软件做完后,再“复制”——“粘贴”到页面的在线编辑器中。所以考虑直接用程序将Word文件转化成一种能够方便在发布的形式。最初考虑使用图片格式,如JPG格式。但是发现Word转JPG到过程比较困难。然后考虑Word转PDF格式,但是发现PDF需要安装浏览器插件才能浏览,而且转化过程也比较麻烦。主要是转化效率不高(编程能力有限)在解决过程中,发现了xps格式,但是对xps格式不是很了解,希望有高人指点。三、xps的优点
1、程序控制格式转化简单。使用Microsoft xps Document Writer就能完成
2、便于修改和迁移。以前的网站内容都是以html的格式存储,或者是以数据库的形式存储。如果需要将这些问题从迁移到其他地方,那么不得不考虑迁移整个网站和数据库。
3、也许前途很光明。网站上说微软发展该格式,是为了和adobe的pdf对抗。如果能得到微软的支持,那么该格式的前途是光明的。
目前安装了.Net Frame3.0或者office2007的机器就可以不需要安装插件或者阅读器,可直接浏览了。四、xps的缺点
1、非IE典浏览器好像不支持。
2、IE中好像也没有直接的插件。一定要安装个.Net Frame3.0或者office2007------------------------------------------以上是今天第一天接触xps的心得,希望得到高人指点。

解决方案 »

  1.   

    最近我也准备学习xps呢!!
    一块学习!!
      

  2.   

    给你推荐个工具Altova XMLSpy!!
      

  3.   

    在getting involved(介绍)关于Silverlight和创建XPS Document基于WPF的XAML为核心,我已经推出用于Silverlight的
    轻量级的XPS查看器.首先,一点背景:WPF是 Windows Presentation foundation和 表现一个新的windows UI, XPS 引用XML Paper Specification,一个自由策略文件格式灵活的文档呈现(认为PDF),用于office2007和.net3.0,WPF提出丰富支持显示XPS文档,通过它的DocumentViewer和XpsDocument类等,因为Silverlight1.1 Alpha 发布没包含这两个类,Silverlight不能在suit中显示XPS Document.
    可是,Silverlight有Downloader 类其中支持包(讨论这里的目的是,包支持ZIP压缩格式),在以后一个XPS Doucment是正好是一个包,并且核心文档格式XPS 使用是XAML,和Silverlight speaks XAML(好,至少是它的一个子集),也许它不能延伸XPS到Silverlight上.我思考后尝试去写一个XPS viewer(查看器),是利用Silverlight1.1 Alpha的部分来写的,我的尝试做的这个应用程序已经结束,这个应用程序我叫它SimpleSilverlightXpsViewer:SimpleSilverlightXpsViewer Application从头开始Click here可以在浏览器中运行这个程序,如果你想自己发现这个是怎样工作的,那就Click here 下载完整的源代码,和你可以自己玩它.(你要构建设SimpleSilverlihgtXps Viewer工程要在"Orcas" beta1 和Sivlerlight tools中)当然,这是一个proof-of-concept application,还在构件在一个Alpha平台上的,所以有一些粗略,下面是一些注意: (1)我创建我的自己XPS Document,所以我不用担心是否得到允许使用其他的XPS Document. Office 2007能提供便利"Microsoft XPS Document Writer"打印驱动让你使用任何应用程序创建一个XPS document都能被一个 XPS"printer" 打印(保存结果按你指定的文件输出).我创建三个简单的文档,分别是"Intro" 文可以来于Word document,"Blog"文档是通过IE7来访问我的blog,和"Site"是通过IE7访问Silverlight论坛. (2)因为XPS Doument只有一种我只要使一种XPS printer 驱动输出就做用的,有一个非常好的偶然性SimpleSilverlihgtXpsViewer不用了解其他有效的XPS 文件的内部格式,回想,尽管,我没有涉及写一个XPS文件解析器,我就可以开始写一个简单的Silverlight的XPS Viewer. (3)翻译一个 "XPS XAML" to "Silverlight".明确的,一些元素是被重命名的,一些属性的值是被替换(tweaked),并一些属性被完全移出,这里的"tweaking"是像Glyphs.FontUri/ImageBrush.ImageSource这样的地址标记发行时移到次级来重新将内容的一个外部位置嵌入. (4)XPS Document 是完全独立的,任何所需字体和图片嵌入在他自己中(包中),这都是极好的单一发行与Silverlight的Downloader已能够让你到最容易得到包中单个文件:  1:在正确的情况下,嵌入图片能被Silverlight的 ImageBrush.SetSource方法所取的,注意break,如果在一个单页上同一图片有多个引用(当第二次掉用SetSource时一个异常被抛出),所以SimpleSilverlightXpsViewer默认是不允许的,感兴趣的人能#define SETSOURCE(在两个C#文件中)体验这个特性(简单文档的首页工作良好,但在第二页Blog和site文档中就会有break.).
      2:默认行为Glyphs.FonUri不能自动从包中取出字体,至少没有被SimpleSilverlightXpsViewer使用(可能是 Silverlight不能用'/'表示包关系的路径),TextBlock已经有一个SetFontSource方法似乎很有趣,但XPS XAML使用Glyphs类没有支持SetFontSource. (5)还有一些原因,XPS Document被XPS printer驱动产生不能立即被Silverlight的Downloader打开(是一个COM异常).可以,我已经创建一个快速的un- ZIP/re-ZIP中任何一个我中意的ZIP工具都能正确打开XPS文档.我怀疑可能是一个Alpha Downloader是一个简单发行版(endian-ness of the ZIP file, some special section embedded by the XPS printer driver, etc)因为被Silverlight团队固定这个功能是很容易的. (6)Silverlight没有支持TIFF文件格式(不用惊讶因为支持它是十分复杂的并且 TIFF images是从来不在WEB上使用),但很巧,XPS打印驱动输出中包含TIFFimages(如果它发现TIFFimages,就会用PNG或JPG 替换它.),所以SimpleSilverlightXpsViewer将完全忽略TIFF images 与良好的支持跨平台发布.当SimplelightXpsViewer 是聪明的proof-of-concept application,我满意的作品,它是几乎完成Silverlight对XPS的支持,(我不是Silverlight团队的),我不知道 Silverlight团队是否在Silverlight平台上有更好的支持XPS的计划,但我的SimpleSilverlightXpsViewer 的经验建议在这里已经有大部分篇幅,也有很好的关于Silverlight 1.1 alpha 的XPS的很好的体验,对Silverlight抛出一组tweaks(提示),(and/or SimpleSilverlightXpsViewer!),和它将来应该提供一个很漂亮,引人注目的在Silverlight上的XPS的用户体验.   
    原文链接
      

  4.   

    2008-4-29今天参加一个培训会,无聊中继续考虑这个问题其实用pdf+flsah格式也可能实现,网上已经有这样的解决方案。比如可以用pdfviewer.swf实现。但是好像这个插件需要收费。不知道自己能不能解决这个问题。