2017-10-29 3 views
1

ich Daten von Drucker wie folgt lesen:XpsDocument GetFixedDocumentSequence null zurück

using (Stream stream = client.GetStream()) 
    { 
    using (MemoryStream ms = new MemoryStream()) 
    { 
     stream.CopyTo(ms); 

     client.Close(); 

     byte[] result = ms.ToArray(); 
     ... 

    using (var memoryStream = new MemoryStream(result)) 
    { 
     using (var package = Package.Open(memoryStream, FileMode.Open)) 
     { 
     var packageUri = new Uri("memorystream://printstream"); 
     PackageStore.AddPackage(packageUri, package); 
     var xpsDocument = new XpsDocument(package, CompressionOption.Fast, packageUri.OriginalString); 
     return xpsDocument.GetFixedDocumentSequence() // NULL 

Ich habe auch versucht Strom direkt an die Datei zu speichern und lesen dann als File.ReadAllBytes (filePath), aber Ergebnis ist das gleiche.

Nachdem ich Strom in die Datei gespeichert habe, kann ich es ohne Probleme über XpsViewer öffnen.

Antwort

0

Seltsam, aber es funktioniert. Ich muss XpsConverter.exe verwenden und XPS-Datei in XPS konvertieren. Hier ist @AXMIM solution