小编ccc*_*cec的帖子

如何从字节数组创建XpsDocument?

我想从字节数组创建一个新的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;
}
Run Code Online (Sandbox Code Playgroud)

但是,我想要完成的更像是这样的:

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;
}
Run Code Online (Sandbox Code Playgroud)

上述方法的用法如下:

XpsDocument xps = TaxReturnCreator.OpenXpsDocument(tempFileUrl); …
Run Code Online (Sandbox Code Playgroud)

.net c# xpsdocument bytearray xps

2
推荐指数
1
解决办法
5509
查看次数

标签 统计

.net ×1

bytearray ×1

c# ×1

xps ×1

xpsdocument ×1