日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XPS文档阅读器

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XPS文档阅读器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XPS是微軟的一個文檔標準,就像Adobe的PDF,現在網上也有很多的PDF文檔在線閱讀器,而XPS文檔閱讀器很少幾乎沒有。今天我將我制作的這個XPS文檔閱讀器拿出來跟大家分享,也順便期望某個高手能解決一些問題,共同進步。本XPS閱讀器可以實現的效果如下:可以完美還原原來文檔的原貌,添加頁面導航功能(類似于Word中標題導航,如果是外部URL的鏈接那么將打開新頁面),添加了翻頁動畫效果(提供了屬性可以自定義翻頁動畫)。

?XPS是微軟的一個文檔標準,最新版下載:http://www.freeeim.com/

隨著Silverlight4 的發布,Silverlight版的XPS閱讀器也變的可行。其實國外牛人早在Silverlight3的時候就發布了XPS閱讀器,但卻是收費的。最主要的原因是Silverlight4以前的所有版本都不支持為Glyphs設置FontSource屬性。這樣導致了除非你另寫一套類庫來模擬Glyphs不然只有購買第三方的類庫。可是現在Silverlight支持位Glyphs設置FontSource屬性了,所以現在我們可以設計制作一個Silverlight版的XPS閱讀器。唯一的遺憾是無法讀取直接由打印出來的XPS文檔,只能讀取由Office轉換過來的XPS文檔,問題出在當文檔時由打印獲得的XPS文檔的時候,無法獲取相關的資源(期望某位高手能解決)。下圖是本項目的類文件:

?

?

這里幾乎所有的類文件都是按照XPS的文檔結構來建立的。我們可以隨便拿出一個由office轉換來的XPS文檔,然后將文件的后綴名改為zip格式,然后解壓文件就可以看到整個文檔的結構了。所有類中最重要的類有三個:XpsDocument這個類是承載文檔的(也就是流Stream),XpsToSilverlightXaml這個類是專門負責將XML轉換成Xaml(參考國外的一篇blog,名字忘了),FixedPage這個類是專門用來承載頁面的(負責顯示頁面),其他的類就是為了輔助以及配合文檔結構用的。(http://hi.baidu.com/feiqiu_ok)

這里為了區別是否是由Office轉換而來的,特意加了一個XpsDocumentType枚舉用來表示文檔類型。

其他的就不多說了,全都在源碼里面。有什么不明白的可以留言給我。

然后下面是XPS控件的用法:

1.? 首先在頁面中添加控件的引用xmlns:xps="clr-namespace:MyControl.XpsDocument;assembly=MyControl"

2.? 然后就是添加控件了

? <ScrollViewer>

??????? <StackPanel x:Name="LayoutRoot">

??????????? <xps:XpsDocument IsEnableAnima="True"

??????????????????????????? ?x:Name="xpsDocument"

??????????????????????????? ?IsEnableNavigate="True">

???????? ???</xps:XpsDocument>

??????????? <StackPanel Orientation="Horizontal"

?????????????????????? ?HorizontalAlignment="Center">

??????????????? <xps:XpsControl x:Name="xpsControl"></xps:XpsControl>

??????????????? <Button Content="Load"

?????????????????????? ?Click="Button_Click"></Button>

??????????? </StackPanel>

??????? </StackPanel>

??? </ScrollViewer>

其中屬性IsEnableAnima表示是否啟用翻頁動畫,如果啟用默認的是一個180度旋轉動畫,也可以通過自定義的方式為Xps控件添加翻頁動畫。屬性IsEnableNavigate表示是否啟用頁面導航功能。(http://freeeim.blog.sohu.com/)

3.? 為button添加事件,用來加載XPS文檔:

?? private void Button_Click(object sender, RoutedEventArgs e)

??????? {

??????????? OpenFileDialog opFile = new OpenFileDialog();

??????????? if (opFile.ShowDialog() == true)

??????????? {

??????????????? var newStream = new StreamResourceInfo(opFile.File.OpenRead(), null);

??????????????? xpsDocument.SetStream(newStream);

??????????????? xpsControl.Document = xpsDocument;

??????????? }

??????? }

至此一個XPS閱讀器就完成了。先點擊Load按鈕加載XPS文檔,然后下一頁就能顯示文檔了。如果要添加更多的功能,比如選擇文字,放大縮小,那就請各位自行添加了。(http://www.freeeim.com/bbs/)

最后,唯一的遺憾是不能加載由打印獲取的XPS文檔,如果哪位牛人解決了這個問題還請麻煩告訴我下,不勝感激!

總結

以上是生活随笔為你收集整理的XPS文档阅读器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 健身教练巨大粗爽gay视频 | 精品一区二区三区蜜桃 | 91成人福利在线 | 婷婷资源网 | 超碰www| 四季av综合网站 | 久久精品国产77777蜜臀 | 日韩欧美一区二区视频 | 国产熟女精品视频 | 亚洲深爱 | 美日韩丰满少妇在线观看 | 欧美欧美欧美 | 玖玖精品在线 | 香蕉久久影院 | 国产又粗又猛又爽又黄的网站 | 人人做 | 成人国产在线视频 | 日本黄色片免费看 | 欧美视频成人 | 成人免费看 | 成年人黄色一级片 | 九色视频自拍 | 中文一区在线观看 | 午夜激情成人 | 丰满人妻一区二区三区免费视频棣 | 亚洲欧洲天堂 | 欧美日韩精品一区二区 | 久久夜色精品国产噜噜亚洲av | 成人一区二区三区视频 | 国产黄色免费在线观看 | 日韩激情在线观看 | 男人操女人视频网站 | 免费在线不卡视频 | 中文字幕免费观看 | 久久精品国产精品亚洲色婷婷 | 99国内揄拍国内精品人妻免费 | 美女的诞生免费观看在线高清 | 国产精欧美一区二区三区蓝颜男同 | 99re热这里只有精品视频 | 精品少妇人妻一区二区黑料社区 | www.99爱 | 中文在线а√在线 | 超碰91在线观看 | 欧美色亚洲 | 欧美日韩一区二区三区不卡视频 | 国产欧美日韩综合精品一区 | 久久av影视 | 性欧美极品 | 天天干天天搞天天射 | 天天干影院 | 日毛片 | 91av导航| 国产熟女一区二区三区五月婷 | 日本成人三级 | 久久精品—区二区三区舞蹈 | 五月天校园春色 | 性色生活片 | 免费在线黄色网址 | 黄色大片视频网站 | 91自啪| 成人免费视频国产免费麻豆 | 国产一级二级三级在线观看 | 欧美专区视频 | 德国经典free性复古xxxx | 亚洲人成77777| 亚洲乱熟女一区二区 | 一区二区三区四区高清视频 | 99热最新 | 久久久人妻无码一区二区 | 久久精品女人毛片国产 | 福利综合网 | 一本高清dvd在线播放 | 五月综合色 | 成人爽a毛片一区二区 | 欧美激情第五页 | 亚洲精品视频导航 | 三叶草欧洲码在线 | 亚洲女人被黑人巨大进入 | 午夜精品一区二区三区在线观看 | 欧美日韩一区在线 | 激情婷婷在线 | 日韩夜夜高潮夜夜爽无码 | 精品无码一区二区三区免费 | 日本免费一区二区视频 | 欧美黑人又粗又大又爽免费 | 国产精品国产三级国产普通话对白 | 男女黄床上色视频 | 激情欧美网站 | 熟妇人妻一区二区三区四区 | 毛片无限看| 男人在线网站 | 人妻少妇一区二区 | 国产黄站| 一区二区三区高清不卡 | 国产精品视频大全 | 午夜刺激视频 | 老妇高潮潮喷到猛进猛出 | 午夜精品久久久久 | 国产成人av免费观看 |