在我的应用程序中使用了以下用于将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);
为什么文件无法打开? render()方法参数有什么变化吗?
答案 0 :(得分:0)
这里的问题是与
FileStream fsi = new FileStream(@"D:\output.pdf", FileMode.Create);
它只是在D:\中创建一个名为ouput.pdf的文件,其中没有数据。所以,acrobat读者说文件已经被破坏了!