0

在我的应用程序中使用了以下将 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() 方法参数有什么变化吗?

4

1 回答 1

0

这里的问题是
FileStream fsi = new FileStream(@"D:\output.pdf", FileMode.Create); 它只是在 D:\ 中创建了一个名为 ouput.pdf 的文件,其中没有数据。acrobat reader 也说文件已损坏!

于 2013-12-10T07:03:03.703 回答