特定计算机生成的文件的XpsDocument GetFixedDocumentSequence返回null

SolidWorks生成“ EDRWX”文件.通常,这些是opened with Microsoft XPS查看器.

问题 :
应用程序使用.net XPSDocument打开它们并在打印之前对其进行一些操作.故障方法是“ GetFixedDocumentSequence”.对于从特定计算机生成的文件,它返回null.即使应用程序在特定计算机上运行,​​它也会这样做.但是,它可以与其他计算机生成的文件配合使用.

特定计算机生成的文件的XpsDocument GetFixedDocumentSequence返回null

尝试使用XPS文档查看器打开文件时,打开失败,提示无法打开.但是,它确实在创建它的特定计算机上打开.如果此计算机从Microsoft Word打印正常的XPS文件,则其他计算机能够使用XPS文档查看器正常打开它.另外,在包括特定计算机在内的每台计算机上,都可以使用XPS文档查看器轻松打开其他计算机生成的“ EDRWX”文件.

更多规格:
特定计算机在Windows 8.1下运行.
其他计算机则在Windows 7下运行.
该应用程序与.net Framework 4.0一起运行.

Here是由特定计算机生成的“ EDRWX”伪文件.
Here是由其他计算机之一生成的“ EDRWX”伪文件.

问题的原因是什么,如何解决?

旁注:我已经调查了将近3天…所以我对这个问题很生气.可能是您的眼睛可以看到我不再那么被它吸引了.

在挖掘过程中,我发现了这两个文件之间的区别.
特定计算机生成的文件的XpsDocument GetFixedDocumentSequence返回null

解决方法:

失败的EDRWX文件不是XPS文件,而是Open XPS文件.两种格式非常相似,但是,正如您所发现的,XPSDocument不支持OpenXPS.我不知道任何直接支持Open XPS的.net API,但是Microsoft确实发布了standalone converter tools,您可以利用它.

另一种可能有效或无效的替代方法是尝试迫使SolidWorks在出现故障的机器上生成xps而不是oxps. solidworks可能正在使用xps文档编写器生成这些文件,在这种情况下,按照here所述更改输出格式可以解决该问题.

上一篇:如何将XPS转成PDF?XPS转PDF的免费方法


下一篇:基于Win服务的标签打印(模板套打)[转]