none
IMPRIMIR DIRECTAMENTE A UNA IMPRESORA CLIENTE CRYSTAL REPORTS ASPX RRS feed

  • Pregunta

  • Hola amigos buenos dias.

    Me he topado con un problema tengo un reporte en Crystal Reports ya que no quiero que se muestre el reporte si no lo mande directamente a la impresora que esta como predeterminada. en el servidor imprime de maravilla en el cliente no manda a imprimir.

    muestro esta funsion para imprimir no se que mas me estaría faltando.

          public static void printCrystalReport(CrystalDecisions.CrystalReports.Engine.ReportDocument aoReport,
    int aiNumCopias, int aiPageBegin, int aiPageEnd, String asPrinterName)
            {
                if (asPrinterName == String.Empty)
                {
                    //            Buscamos la impresora por defecto del sistema
                    System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument();
                    asPrinterName = printDoc.PrinterSettings.PrinterName;
                               }

                aoReport.PrintOptions.PrinterName = asPrinterName;
                aoReport.PrintToPrinter(0, false, aiPageBegin, aiPageEnd);
            }

    de esta forma es como llamo a la funcion.

                             

      Rpt.Load(HttpContext.Current.Server.MapPath("Codigo_de_Barras.rpt"));
                Rpt.SetDataSource(Session["rpt_emision"]);
                CrystalReportViewer1.ReportSource = Rpt;
                CrystalReportViewer1.DataBind();
                Session["rpt"]= "rpt1";   

       try
                {

                  printCrystalReport(Rpt,0, 0, 0, "");
                }
                catch (Exception)
                {

                    throw;
                }

    Gracias.

    martes, 21 de abril de 2015 13:48

Respuestas

  • SOLUCIONADO.

        Rpt.Load(

                Rpt.PrintOptions.PrinterName = (

    ConfigurationManager.AppSettings["NombreImpresora"].ToString());

               

    PageMarginsmargins = newPageMargins();

                margins = Rpt.PrintOptions.PageMargins;

                margins.bottomMargin = 0;

                margins.leftMargin = 0;

                margins.rightMargin = 0;

                margins.topMargin = 0;

                Rpt.PrintOptions.ApplyPageMargins(margins);

               

    stringimpresora = (ConfigurationManager.AppSettings["NombreImpresora"].ToString()) ;

               

    stringformatoimpresora=(ConfigurationManager.AppSettings["FormatoImpresora"].ToString());

                Rpt.PrintOptions.PaperSize = (CrystalDecisions.Shared.

    PaperSize)(GetPaperSize(impresora, formatoimpresora));

               

    intpagFin = 0;

                pagFin = Rpt.FormatEngine.GetLastPageNumber(

    newCrystalDecisions.Shared.ReportPageRequestContext());

              

                Rpt.PrintToPrinter(1,

    false, 1, pagFin);

          

            }

     

           

    publicInt32GetPaperSize(StringsPrinterName, StringsPaperSizeName)

            {

               

    PrintDocumentdocPrintDoc = newPrintDocument();

    docPrintDoc.PrinterSettings.PrinterName = sPrinterName;

               

    for(inti = 0; i < docPrintDoc.PrinterSettings.PaperSizes.Count; i++)

                {

                   

    intraw = docPrintDoc.PrinterSettings.PaperSizes[i].RawKind;

                   

    if(docPrintDoc.PrinterSettings.PaperSizes[i].PaperName == sPaperSizeName)

                    {

                       

    returnraw;

                    }

                }

               

    return0;

            }

    martes, 21 de abril de 2015 18:04