2017-09-27 2 views
-1

Je souhaite lire la structure XML d'un élément fpage dans un fichier XPS en tant que flux.C# Lire le fichier XML de fpage du flux XPS

Donc, pour expliquer plus en détail ce que je veux faire:

Si vous enregistrez un .xps vous pouvez le renommer à une archive zip, vous pouvez alors lire le xml par exemple
xps \ Documents \ 1 \ Pages \ 1.fpage

Maintenant, je veux lire cette structure xml dans mon programme C#. Parce que enregistrer sur le disque, renommer, naviguer, extraire, lire, supprimer n'est pas une bonne option j'ai ce fichier xps déjà disponible en tant que flux dans mon programme.
Donc la question est de savoir comment puis-je accéder à cette structure XPS à partir du flux et lire son xml?

Répondre

0

Donc, si trouvé la réponse moi-même (n'est pas si difficile si vous savez comment ^^).

Vous devez System.IO.Packaging.Package et une référence à ReachFramework puis créez un nouveau XpsDocument et via XmlReader vous pouvez lire la structure XML.

Petit échantillon pour la lecture de la première page:

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 
    } 
}