2011-04-01 11 views
5

मैं अपने WinForms ऐप से रिपोर्टिंग सेवाओं से उत्पन्न पीडीएफ प्रदर्शित करना चाहता हूं।रिपोर्टिंग सेवाओं से पीडीएफ प्रदर्शित करें

मैं निम्नलिखित की कोशिश की:

Uri uri = new Uri("http://myReportServer?MyReport&rs%3aCommand=Render&rs:Format=pdf"); 
System.Diagnostics.Process.Start(uri.ToString()); 

जो एक ब्राउज़र है, जो तब बदले में मुझे खोलने के लिए या इस फाइल को सहेजने के लिए संकेत की शुरूआत।

आदर्श रूप में मैं केवल ब्राउज़र में या पीडीएफ व्यूअर में फ़ाइल प्रदर्शित करना चाहता हूं। समस्या यह है कि मुझे ब्राउज़र और फिर पीडीएफ व्यूअर दोनों खोलना है, जो उपयोगकर्ता नहीं चाहते हैं।

क्या यूआरएल का उपयोग करके ऐसा करने का कोई आसान तरीका है?

मेरा दूसरा विकल्प केवल कुछ सी # कोड लिखना है जो सीधे आगे लगता है। वहाँ कुछ उदाहरण यहां हैं:

http://geekswithblogs.net/bsherwin/archive/2007/04/29/112094.aspx

और यहाँ:

http://www.codeproject.com/KB/reporting-services/PDFUsingSQLRepServices.aspx

उत्तर

4

आप डिस्क पर पीडीएफ डाउनलोड करें और फिर Process.Start का उपयोग यह दिखाने के लिए कर सकते हैं।

इस उदाहरण पर एक नज़र डालें:

 Uri uriDownload = new Uri("http://myReportServer?MyReport&rs%3aCommand=Render&rs:Format=pdf"); 
     string strSavePath = @"C:\test\test123.pdf"; 

     System.Net.WebClient wcli = new System.Net.WebClient(); 
     wcli.DownloadFile(uriDownload, strSavePath); 
     System.Diagnostics.Process.Start(strSavePath); 

अद्यतन:

हैं कि डिफ़ॉल्ट रूप से काम नहीं करता है, wcli.DownloadFile() से पहले इस जोड़ने का प्रयास:

 wcli.Credentials = new NetworkCredential("username", "password", "domain"); 
     wcli.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"); 
+0

धन्यवाद, यह अच्छा लग रहा है हालांकि मैंने कोशिश की और मुझे निम्न त्रुटि मिली 'रिमोट सर्वर ने एक त्रुटि लौटा दी: (401) अनधिकृत। मुझे अपने मूल कोड के साथ कोई त्रुटि नहीं मिली थी। क्या मुझे कुछ करने की ज़रूरत है? – openshac

+0

@openshac: मैंने अपना जवाब अपडेट किया, एक नज़र डालें। – HABJAN

+0

@HABAN, दुर्भाग्यवश मेरे पास सभी उपयोगकर्ता पासवर्ड तक पहुंच नहीं है। क्या मैं यह सुनिश्चित करने के लिए कुछ कर सकता हूं कि मैं एकीकृत प्रमाणीकरण का उपयोग करूं? – openshac

संबंधित मुद्दे