C# 无法读取导出的pdf

C# 无法读取导出的pdf,c#,pdf,reporting-services,mime-types,rdlc,C#,Pdf,Reporting Services,Mime Types,Rdlc,我的应用程序中使用了以下用于将rdlc导出为pdf的呈现方法。但导出后,无法打开保存的“Output.pdf”文件,并说“Output.pdf无法打开。它可能不受支持,或者文件已损坏”。尽管默认情况下保存的文件在adobe reader中打开 Warning[] warnings; string[] streamIds; string mimeType = "application/pdf";

我的应用程序中使用了以下用于将rdlc导出为pdf的呈现方法。但导出后,无法打开保存的“Output.pdf”文件,并说“Output.pdf无法打开。它可能不受支持,或者文件已损坏”。尽管默认情况下保存的文件在adobe reader中打开

                Warning[] warnings;
                string[] streamIds;
                string mimeType = "application/pdf";
                string encoding=String.Empty;
                string filenameExtension=String.Empty;
                string deviceInfo ="<DeviceInfo>"+"<OutputFormat>PDF</OutputFormat>"+"  <PageWidth>8.5in</PageWidth>"+"<PageHeight>11in</PageHeight>"+"<MarginTop>0.5in</MarginTop>" +"<MarginLeft>1in</MarginLeft>"+"<MarginRight>1in</MarginRight>"+"<MarginBottom>0.5in</MarginBottom>"+"</DeviceInfo>";
                DataSet myDataSet = new DataSet();

 byte[] bytes = viewer.Render("PDF", deviceInfo, out mimeType, out encoding, out filenameExtension, out streamIds, out warnings);
                        using (System.IO.FileStream fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
                        {
                            fs.Write(bytes, 0, bytes.Length);
                        }

                        FileStream fsi = new FileStream(@"D:\output.pdf", FileMode.Create);
Warning[]警告;
字符串[]流线;
字符串mimeType=“application/pdf”;
字符串编码=string.Empty;
string filenameExtension=string.Empty;
字符串deviceInfo=“”+“PDF”+“8.5in”+“11in”+“0.5in”+“1in”+“1in”+“0.5in”+”;
DataSet myDataSet=新数据集();
byte[]bytes=viewer.Render(“PDF”、deviceInfo、out-mimeType、out-encoding、out-filenameExtension、out-streamid、out-warnings);
使用(System.IO.FileStream fs=new System.IO.FileStream(“output.pdf”,System.IO.FileMode.Create))
{
fs.Write(字节,0,字节.长度);
}
FileStream fsi=newfilestream(@“D:\output.pdf”,FileMode.Create);

为什么文件无法打开?render()方法参数有任何更改吗?

这里的问题在于
FileStream fsi=newfilestream(@“D:\output.pdf”,FileMode.Create)

它只是在D:\中创建了一个名为ouput.pdf的文件,其中没有任何数据。acrobat reader也这样说,该文件是currupted

这段代码看起来不错,但什么是查看器?什么版本?有很多不同的
Render(…)
方法,参数和顺序略有不同。你在
警告
数组中也得到了什么吗?没有;我注意到output.pdf已保存,可以在project/bin目录中正确打开。但在D:\中,它表示文件已损坏。