zoukankan      html  css  js  c++  java
  • Loading Xps from MemoryStream

    A common way of loading XpsDocument is to load it from file:

    XpsDocument document = new XpsDocument(filename, FileAccess.Read, CompressionOption.NotCompressed);
    FixedDocumentSequence fixedDocumentSequence = document.GetFixedDocumentSequence();
    //To view in the DocViewer
    docViewer.Document = fixedDocumentSequence as IDocumentPaginatorSource;


    But if we need to Load the Xps from a Stream we can use the Package Class and do the following:

    private void LoadXpsFromStream(Byte[] xpsByte, string packageUriString)
    {
      MemoryStream xpsStream = new MemoryStream(xpsByte);
      using (Package package = Package.Open(xpsStream))
      //Remember to create URI for the package
      Uri packageUri = new Uri(packageUriString);
      //Need to add the Package to the PackageStore
      PackageStore.AddPackage(packageUri, package);
      //Create instance of XpsDocument
      XpsDocument document = new XpsDocument(package, CompressionOptions.MaximuCompression, packageUriString);
      //Do the operation on document here
      //Here I am viewing the document in the DocViewer
      FixedDocumentSequence fixedDocumentSequence = document.GetFixedDocumentSequence();
      //To view in the DocViewer
      docViewer.Document = fixedDocumentSequence as IDocumentPaginatorSource;
      //Remember to keep the Package object in PackageStore until all operations complete on document.
      //Remove the package from store
      PackageStore.RemovePackage(packageUri);
      doc.Close(); 
    }

    //Calling the above function from Client
    //
    //Get bytes[] from MemoryStream
    //byte[] xpsBytes = someStream.ToArray();
    //For demonstration I am reading bytes from a file
    byte[] xpsBytes = File.ReadAllBytes(@"somexps.xps");
    //
    LoadXpsFromStream( xpsBytes, "somexps.xps");

    Hope this helps.

  • 相关阅读:
    DataGridView设置不自动显示数据库中未绑定的列
    [转载]sed 简明教程
    FreeMarker template error!
    tomcat共享lib里面的jar包
    java命令
    实验报告四
    实验报告三
    实验报告二
    实验一
    网络对抗技术作业
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/8010607.html
Copyright © 2011-2022 走看看