2017-09-27 73 views
-1

我想將XPS中的fpage元素的XML結構讀取爲Stream。C#從XPS流的fpage讀取XML

因此進一步解釋什麼,我想做的事:

如果保存.XPS您可以將其重命名爲一個zip壓縮包,那麼你可以例如讀取xml
xps \ Documents \ 1 \ Pages \ 1.fpage

現在我想在我的C#程序中讀取這個xml結構。
因爲保存到光盤,重命名,導航,提取,讀取,刪除不是一個好的選擇,我已經可以在我的程序中以流的形式提供此xps文件。
所以問題是我如何從流中訪問這個XPS結構並讀取它的xml?

回答

0

所以,如果自己找到答案(如果你知道如何^^,那不是很難)。

您需要System.IO.Packaging.Package和參考ReachFramework然後創建一個新的XpsDocument並通過XmlReader讀取XML結構。

用於閱讀第一頁的小樣本:

XpsDocument xpsFromStream = new XpsDocument(Package.Open(stream)); //ReachFramework 
IXpsFixedDocumentSequenceReader fixedDocSeqReader = xpsFromStream.FixedDocumentSequenceReader; 

if (fixedDocSeqReader != null) 
{ 
    XmlReader pageContentReader = fixedDocSeqReader.FixedDocuments[0].FixedPages[0].XmlReader; 
    //Sample: 
    while (pageContentReader.Read()) 
    { 
     if (pageContentReader.Name == "Path") 
      //Do stuff 
    } 
}