none
Imprimir por la impresora predeterminada RRS feed

  • Pregunta

  • Hola , he implementado un boton para imprimir .

     Cuando lo ejecuto en VWD, funciona. El problema es cuando publico la pagina ya que no la imprime, por que creo que cuando esta publicada no da el nombre de la impresora predeterminada.

    este es parte del codigo para imprimir:

     

    Public Shared Function DefaultPrinterName() As String

            Dim oPS As New System.Drawing.Printing.PrinterSettings

     

            Try

                DefaultPrinterName = oPS.PrinterName

            Catch ex As System.Exception

                DefaultPrinterName = ""

            Finally

                oPS = Nothing

            End Try

        End Function

     Private Sub Print()

            Dim printerName As String = DefaultPrinterName()

     

            If m_streams Is Nothing Then

                Return

            ElseIf m_streams.Count = 0 Then

                Return

            End If

     

            Dim printDoc As New PrintDocument()

     

            printDoc.PrinterSettings.PrinterName = printerName

            If Not printDoc.PrinterSettings.IsValid Then

                Dim msg As String = String.Format( _

                    "Can't find printer ""{0}"".", printerName)

                Console.WriteLine(msg)

                Return

            End If

            AddHandler printDoc.PrintPage, AddressOf PrintPage

            printDoc.Print()

     End Sub

     

    le agradeceria su ayuda

     

     


    nasck
    jueves, 7 de julio de 2011 22:26

Respuestas

Todas las respuestas

  • claro porque estas en un ambiente web y ese codigo se ejecuta en el servidor, no se ejecuta en el cliente

    recuerda que tienes dos parte el servidor y el cliente, el primero seguramente en el IIS donde creas un sitio y el otro seria el browser, como ser IE o FireFox

    pero ese codigo es del servidor por eso imprimira en als impresoras que este equipo donde esta el IIS tenga configuradas

    cuandod esarrollas web que no te confunda el echo que al desarrollar y probar la pagina en la misma pc esta todfo junto, el servidor y el cliente pueden estar a kilometros de distancia si es que se pubrica en internet

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 7 de julio de 2011 23:29
  • Hola te agradesco por la respuesta,entonces que codigo podria utilizar o que configuraria para que funcione.

     Agradeceria su ayuda


    nasck
    viernes, 8 de julio de 2011 12:56
  • deberias crear un reporte, quizas usando Crystal o Reporting Service y genrando este enviarlo al cliente para que el usuario decida la impresion

    como es en el cliente no podras imprimir directamente

     

    Informes Crystal Reports

    Creación de Reportes con Crystal Reports en Visual Studio 2005/2008

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 8 de julio de 2011 13:05
  • hola, he realizado informes en reporviewer en modo local.

    me podes por favor explicar esta parte: 

    genrando este enviarlo al cliente para que el usuario decida la impresion

    como es en el cliente no podras imprimir directamente.

     

    te lo agreceria.

    Yo quisiera que el cliente pudiera imprimir directamente. he estado un poco investigando , y creo que se puede hacer mediante un dll y activex, pero no he encontrado uno hasta el momento y no se como desarrollarlo para mi caso.

    gracias


    nasck
    viernes, 8 de julio de 2011 14:37
  • creo que se puede hacer mediante un dll y activex, 

    no lo recomiendo, ten en cuenta que estas en un ambiente web y la seguridad es prioridad

    lo que tu harias es generar el reporte y mostrarselo en una ventana para que pueda decidir si imprimir o no y seleccion en que impresora de su red local

    pero deja que esta accion sea del usuario, porque de esta forma evitas problemas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 8 de julio de 2011 14:46
  • muchas gracias por tu pronta respuesta.

    En el caso que me recomiendas,

    Yo muestro mis reportes mediante reportviewer, pero  como le muestraria el reporte en una nueva ventana?

     

    te agradeceria tu ayuda.


    nasck
    viernes, 8 de julio de 2011 14:55
  • Hola encontre un codigo el cual me muestra el informe en formato PDF ( lo abre en otra pagina web), asi el usuario elegi si desea imprimirlo o no, lo he probado en google chrome , Gracias por tus respuestas Leandro. Bueno aqui esta el codigo:

    Dim warnings As Warning() = Nothing
    Dim streamids As String() = Nothing
    Dim mimeType As String = Nothing
    Dim encoding As String = Nothing
    Dim extension As String = Nothing
    Dim bytes As Byte()
    bytes = ReportViewer1.ServerReport.Render("PDF"Nothing, mimeType, encoding, extension, streamids, warnings)
    Dim ms As New System.IO.MemoryStream(bytes)
    Response.ContentType = "Application/pdf"
    Response.BinaryWrite(ms.ToArray())
    Response.End()

     

     

    Aqui esta el link: http://toniogago.wordpress.com/2009/11/11/renderizar-el-contenido-del-control-reportviewer-directamente-a-pdf/#comment-36


    nasck
    lunes, 11 de julio de 2011 22:23