Hay ocasiones en donde conviene enviar la salida de un reporte directamente a PDF, del lado del cliente en una aplicación web. De esta manera nos evitamos tener que instalar componentes del lado del cliente, por ejemplo, el CrystalViewer o fonts para la impresión de códigos de barras.
Aquí transcribo como ejemplo un fragmento de programa escrito en C#:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Configuration;
using System.IO;
…
int nroCuenta = Convert.ToInt32(Request.QueryString["cuenta"]);
string vencimiento = Request.QueryString["vencimiento"];
CrystalReportSource1.Report.FileName = ConfigurationManager.AppSettings["PathCommons"] + “\\Reportes\\Socios\\ResumenCtaDetalle.rpt”;
ReportDocument CR = CrystalReportSource1.ReportDocument;
DataSet ds = new DataSet();
string resultado = AppResumenCuenta.getXMLByNroDoc(nroCuenta, vencimiento);
StringReader sr = new StringReader(resultado);
ds.ReadXml(sr);
CR.Database.Tables[0].SetDataSource(ds);
MemoryStream oStream; // using System.IO
oStream = (MemoryStream)CrystalReportSource1.ReportDocument.ExportToStream(ExportFormatType.PortableDocFormat);
Response.Clear();
Response.Buffer = true;
Response.ContentType = “application/pdf”;