XpsDocument GetFixedDocumentSequence返回null

时间:2017-10-29 19:18:30

标签: c# printing tcpclient xps

我从打印机读取数据:

  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

我还尝试将流直接保存到文件中,然后读取为File.ReadAllBytes(filePath),但结果是一样的。

将流保存到文件后,我可以通过XpsViewer打开它,没有任何问题。

1 个答案:

答案 0 :(得分:0)

奇怪,但它正在发挥作用。我必须使用XpsConverter.exe并将.xps文件转换为.xps。这是@AXMIM solution