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”;