2013-10-17 4 views
0

내 응용 프로그램에서 rdlc를 pdf로 내보내는 다음 렌더링 방법이 사용됩니다. 그러나 내 보낸 후 저장된 "Output.pdf"파일을 열 수 없습니다 "Output.pdf를 열 수 없습니다. 지원되는 파일 또는 파일이 손상되었습니다. ". 저장된 파일은 기본적으로 Adobe Reader에서 열립니다.내 보낸 PDF를 읽을 수 없습니다

   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() 메서드 매개 변수의 변경 사항은 무엇입니까? 여기

+1

이 코드는 괜찮아 보이지만 뷰어는 무엇입니까? 어떤 버전입니까? 약간 다른 매개 변수와 순서가있는 여러 가지 다른 '렌더링 (...)'메서드가 있습니다. 또한'warngings' 배열에서 어떤 것도 얻을 수 있습니까? –

+0

아니요; 나는 output.pdf가 저장되고 project/bin 디렉토리에서 제대로 열릴 수 있다는 것을 알아 챘다. 그러나 D : \에서는 파일이 손상되었다고 말한다. – flute

답변

0

문제가
FileStream fsi = new FileStream(@"D:\output.pdf", FileMode.Create); 함께 그것은 단지 D의 이름 ouput.pdf을 가진 파일을 생성합니다 : \ it..So에 데이터가없는 아크로뱃 리더 파일이 currupted하고 있다고 않습니다!

관련 문제