我想访问RDL以获取PDF格式的报告。我有
static void Main()
{
string pdfOutputFIleName = @"C:\Development\testoutputAsPdf.pdf";
var urlAsPdf = @"http://serverName/ReportServer/Reserved.ReportViewerWebControl.axd?ExecutionID=xxx&Culture=1033&CultureOverrides=False&UICulture=9&UICultureOverrides=False&ReportStack=1&ControlID=yyy&OpType=Export&FileName=Bug+Status&ContentDisposition=OnlyHtmlInline&Format=PDF";
var client = new WebClient();
client.UseDefaultCredentials = true;
//client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
client.Headers.Add("Content-Type", "application/pdf");
Process(client, urlAsPdf, pdfOutputFIleName);
Console.Read();
}
private static void Process(WebClient client, string url, string outputFileName)
{
Stream data = client.OpenRead(url);
using (var reader = new StreamReader(data))
{
string output = reader.ReadToEnd();
using (Stream s = File.Create(outputFileName))
{
var writer = new StreamWriter(s);
writer.Write(output);
Console.WriteLine(output);
}
}
}
我的浏览器中的URL工作正常。该程序运行。当我打开PDF时,我在Adobe收到错误:
打开此文档时出错。文件已损坏 无法修复。
答案 0 :(得分:1)
由于您已经指定了输出文件名和要读取的网址,因此您可以使用WebClient.DownloadFile(string address, string filename)
成员。
private static void Process(WebClient client, string url, string outputFileName)
{
client.DownloadFile(url, outputFileName);
}