0

我正在我的Silverlight应用程序中生成一个 ssrs 报告,我需要将ssrs 报告转换为RadPDFViewer control(telerik silverlight)。所以我使用 WCF 将 pdf 文件保存在项目文件夹中。现在我需要再次读取文件并将其绑定到Pdfviewer

保存是异步进行的。我应该如何等到文件保存然后从文件夹中读取?

另外,您能否告诉我如何将 PDF 作为内存流读取。

我运行以下代码失败。

public byte[] ReturnPdf(string requestUrl) {
        HttpWebRequest req = null; var buf = new byte[1024];
        try
        {
                req = (HttpWebRequest)WebRequest.Create(requestUrl);

                req.Credentials = CredentialCache.DefaultCredentials;

                req.Method = "GET"; var objResponse = req.GetResponse();
                var stream = objResponse.GetResponseStream();
                if (stream != null){BinaryReader br = new BinaryReader(stream);
                        buf = br.ReadBytes(1024);
                } if
                (stream != null) stream.Close();

        }
        catch Exception e){}return buf;
}

private void button2_Click(object sender, EventArgs e)
{

        string baseUrl = "http://abc/ReportServer&rs:Command=Render&rs:ClearSession=true&rs:Format=PDF";

        const string nullString = ":isnull=true";


        byte[] o = ReturnPdf(baseUrl);

        byte[] bytes = new byte[1024];
        Stream s = new MemoryStream(bytes);

}
4

1 回答 1

2

编写 PDF 流:

将 PDF 流写入响应流

您可以检查文件是否已完全写入。

如何测试当前是否正在写入文件

或者这可能会有所帮助:

如何检查文件锁定?

于 2012-06-15T19:46:56.397 回答