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.

  • 相关阅读:
    数组的扩展搜集自无忧脚本
    C#简单模拟用户登录类
    C++ builder数据库连接大全
    童话故事下载地址
    如何对GridView行自动编号?
    document.execCommand() 用法说明
    兼容IE和FF的js脚本做法(比较常用)
    人民币数字转换成大写形式
    C# webBrowser 模拟登陆填充操作等(写网页注册机之类的时候要用到)
    拖动布局之保存布局页面
  • 原文地址:https://www.cnblogs.com/babietongtianta/p/8010607.html
Copyright © 2011-2022 走看看