- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从字节数组创建一个新的 System.Windows.Xps.Packaging.XpsDocument 对象,因为我不想立即将它存储在本地机器上。
通过使用临时文件,它工作正常:
public static XpsDocument OpenXpsDocument(string url)
{
WebClient webClient = new System.Net.WebClient();
byte[] data = webClient.DownloadData(url);
using (BinaryWriter writer = new System.IO.BinaryWriter(File.OpenWrite(xpsTempFilePath)))
{
writer.Write(data);
writer.Flush();
}
XpsDocument xpsDocument = new System.Windows.Xps.Packaging.XpsDocument(xpsTempFilePath, FileAccess.Read);
return xpsDocument;
}
然而,我想要完成的更像是这样:
public static XpsDocument OpenXpsDocument(string url)
{
WebClient webClient = new WebClient();
byte[] data = webClient.DownloadData(url);
Package package;
using (Stream stream = new MemoryStream(data))
{
package = System.IO.Packaging.Package.Open(stream);
}
XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.SuperFast, url);
return xpsDocument;
}
上述方法的用法是这样的:
XpsDocument xps = TaxReturnCreator.OpenXpsDocument(tempFileUrl);
documentViewer1.Document = xps.GetFixedDocumentSequence();
并且,使用最后描述的尝试在 WPF 窗口中显示 XPS 内容(不保存)的方法会因 System.ObjectDisposedException(“无法访问已关闭的流”)而崩溃(第一种方法工作正常)。
我是否应该在创建 XpsDocument 后仍保持流打开状态,还是我遗漏了其他内容?也许有人知道一种完全不同/更好的方法来通过网络以字节形式检索 XPS 数据并从数据创建 XpsDocument 对象?
最佳答案
您不能关闭支持 XpsDocument 的流。您必须允许 Package 管理支持 MemoryStream,该 Package 被收集后将被收集。执行以下操作似乎有点异端:
public static XpsDocument OpenXpsDocument(string url)
{
var webClient = new WebClient();
var data = webClient.DownloadData(url);
var package = System.IO.Packaging.Package.Open(new MemoryStream(data));
var xpsDocument = new XpsDocument(package,
CompressionOption.SuperFast,
url);
return xpsDocument;
}
但必须这样做。
关于c# - 如何从字节数组创建 XpsDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584474/
我想从字节数组创建一个新的 System.Windows.Xps.Packaging.XpsDocument 对象,因为我不想立即将它存储在本地机器上。 通过使用临时文件,它工作正常: public
当我尝试在 XPS 文档上声明 PageHeight 时遇到问题。 到目前为止,我的代码如下所示: private FixedDocumentSequence GetDocument(Document
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。 所谓的“DesignerPaginator”对图表进行分页(非常简单)。 从这一点来说,我做了以下三件事: -
我试图在不挂起 UI 线程的情况下提供 XPS 文档的实时预览。打开文档的速度足够快,但是当我调用 GetFixedDocumentSequence() 时,我的 UI 在文档突然消失的同时几秒钟内没
我必须将 .xlsx 文件导入我的 WPF 应用程序并查看它。我将文档转换为 .xps 然后加载。之后我调用 GetFixedDocumentSequence() 并在那里我得到了这个异常 XamlP
Solidworks 生成“EDRWX”文件。通常,这些是 opened with微软 XPS 查看器。 问题: 应用程序使用 .net XPSDocument 打开它们并在打印前对它们进行一些操作。
更新! 装订工作。问题是 XpsDocumentWriter 没有正确写入 FixedDocumentSequence 的第一个文档的第一页。这似乎是很多人在做这种事情时遇到的问题(即全局有五个开发人
我对该代码有疑问, XpsDocument doc = new XpsDocument(_filePath, FileAccess.Read); XpsDocument = doc.GetFixedD
我正在尝试将 XPS 文档转换为 BMP,以便使用 MODI 的 C# Windows 窗体应用程序可以读取它,因为我的理解是 MODI 无法读取 XPS 文件,只能读取 .tif 和 .bmp 我似
问题 如何打印具有 BlockUIContainer 的 FlowDocument? 如何强制对 FlowDocument 进行测量/更新/安排? 背景 我有一个生成的 FlowDocument,其中
对于“文本/html”,以下工作: System.Net.Mime.MediaTypeNames.Text.Html 最佳答案 当前的 .NET Framework BCL 中没有内置常量。有许多 M
我正在处理一个 SQLCE 数据库,其中一个表有一个 image 类型的列,它存储 XPS 文档的原始二进制数据。 我正在将此数据读入 byte[],然后按如下方式将其保存到磁盘: File.Writ
我是一名优秀的程序员,十分优秀!