2009-02-25 6 views
3

Je dois afficher un aperçu d'un rapport dans une page Web ASP.Net (à l'aide de scripts côté serveur C#). L'aperçu doit être un PDF plutôt que du HTML et affiché en ligne (éventuellement dans un iframe?).Comment afficher un rapport Reporting Services sous forme de fichier PDF intégré dans une page Web ASP.Net et C#?

Est-il possible de spécifier les en-têtes d'un rapport rendu en PDF, de sorte que son 'Content-Disposition' est en ligne plutôt qu'en pièce jointe?

Ou existe-t-il un autre moyen d'afficher un rapport rendu en PDF dans une page Web ASP.Net?


J'utilise Reporting Services 2008

Dans le site ASP.Net J'utilise des références web à ReportService2005.asmx et ReportExecution2005.asmx

Répondre

6

que je fais quelque chose qui est très similaire. Mais j'utilise un HttpWebRequest au lieu d'utiliser le service. Voici comment je le fais. La partie importante est la ligne avant le nom de fichier dans le Content-Disposition. Cela dépend également de leur version d'Adobe Reader (nous avons constaté qu'ils ont besoin de 7 ou plus) et des paramètres qu'ils ont définis (s'ils l'ont configuré pour ne pas ouvrir les fichiers PDF dans le navigateur).

HttpResponse currentResponse = HttpContext.Current.Response; 
currentResponse.Clear(); 
currentResponse.ClearHeaders(); 
currentResponse.ClearContent(); 

filename = String.Format("{0}.pdf", this.ReportName); 
currentResponse.AppendHeader("Content-Disposition", String.Format("inline;filename={0}", filename)); 
currentResponse.ContentType = "Application/PDF"; 

//Copy the content of the response to the 
//current response using BinaryWrite 
snip.... 

currentResponse.End(); 
Questions connexes