Impresion de informe crystal report desde VB

Tengo un problema al imprimir en forma apaisada en Crystal Report, así como para seleccionar el tamaño de la página.
La aplicación desarrollada con vb6, Access y cr5 selecciona la impresora destino desde un combobox. Esta impresora no tiene por que ser la impresora
predeterminada de windows. Para poder seleccionar la orientación
del papel, primero establezco la impresora de destino como la predeterminada,
luego utilizo el objeto printer para establecer la orientación y
después de realizar la impresión vuelvo a restaurar la impresora
predeterminada.
Utilizo el siguiente código:
CrystalReport1.ReportFileName = File1.Path & "\" & tbImpreso.Text
CrystalReport1.ReportTitle = "Prueba de Impresion de Mandato"
CrystalReport1.WindowTitle = "Impresion de: Notificaciones"
If OptImpresora(0).Value = True Then
'GUARDAS LA IMPRESORA PREDETERMINADA
Impresora = Printer.DeviceName
'ESTABLECES LA QUE TE INTERESE PARA IMPRIMIR
'Me.setDefaultPrinter (cboxImpresoras.List(cboxImpresoras.ListIndex))
CrystalReport1.Destination = crptToPrinter
For Each x In Printers
If x.DeviceName = cboxImpresoras.List(cboxImpresoras.ListIndex) Then
Set Printer = x
'Printer.TrackDefault = False
Me.setDefaultPrinter (x.DeviceName)
CrystalReport1.PrinterName = x.DeviceName
CrystalReport1.PrinterDriver = x.DriverName
CrystalReport1.PrinterPort = x.Port
End If
Next
Set x = Nothing
If optAlimentador(0).Value = True Then
'Printer.PaperBin = vbPRBNAuto
Else
Printer.PaperBin = vbPRBNTractor
End If
printer.width = tbAncho.Text
Printer.Height = tbAlto.Text
If optOrientacion(0).Value = True Then 'Vertical
Printer.Orientation = vbPRORPortrait
Else ' Horizontal
Printer.Orientation = vbPRORLandscape
End If
Else
CrystalReport1.Destination = crptToWindow
CrystalReport1.WindowState = crptMaximized
End If
CrystalReport1.ProgressDialog = False
CrystalReport1.Action = 1
CrystalReport1.Reset
' VUELVE A ESTABLECER LA ORIGINAL
If OptImpresora(0).Value = True Then
For Each x In Printers
If x.DeviceName = Impresora Then
Set Printer = x
End If
Next
Set x = Nothing
Me.setDefaultPrinter (Impresora)
End If
La impresión sale correctamente a excepción de la orientación de la página y el tamaño de la misma.
Puedes ayudarme. ¿Por qué no funciona este código?, y
como puede solucionarse.

1 Respuesta

Respuesta
1
Sugiero que le instales el último service pack al visual basic 6, ya que por ahí puede estar el problema. Ya que todo lo demás lo veo bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas