Visual Basic.NET - No me admite apaisado

 
Vista:

No me admite apaisado

Publicado por aseluis (26 intervenciones) el 05/11/2005 11:24:24
Hola a todos. Tengo el problema de que la impresora no me admite o yo pongo mal el apaisado.
Hago lo siguiente:
Si al abrir el dialog de la impresora pulso en la pestaña correcta y elijo horizontal lo imprime correctamente pero si escribo:
Dim pincel As New System.Drawing.SolidBrush(System.Drawing.Color.Black)
Dim fuente As New System.Drawing.Font("courier new", 12)
Dim dato1 As String
dato1="Prueba impresora en horizontal"
PrintDocument1.DefaultPageSettings.Landscape = True
e.Graphics.PageUnit = GraphicsUnit.Millimeter
x = 10
y = 15
e.Graphics.DrawString(dato1, fuente, pincel, x, y)
me sigue imprimiendo vertical.
También lo he intentado con:
e.PageSettings.Landscape = True
pero no me da resultado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No me admite apaisado

Publicado por aseluis (26 intervenciones) el 05/11/2005 21:00:15
Lo he conseguido si pongo la orientación antes del print:
PrintDocument1.PrinterSettings.PrinterName = PrintDialog1.PrinterSettings.PrinterName
PrintDocument1.DefaultPageSettings.Landscape = True
PrintDocument1.Print()
Asi si da resultado.

Ahora el problema es que si pongo e.HasMorePages = True me imprime miles de folios (menos mal que tengo apagada la iompresora)
He probado muchísimas formas y nunca consigo dar un salto de página en la línea que yo quiera, ya que al establcer el valor a True crea montones de páginas y si al crear la segunda página lo establezco a False solo me crea la primera.
Estoy un poco perdio ya en el tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No me admite apaisado

Publicado por aseluis (26 intervenciones) el 06/11/2005 10:48:25
Ya he solventado también este problema. Por si alguien necesita saber como se soluciona. La cuestión es que si se nececitan más páginas (por ejemplo la 2), hay que indicar el e.hasmorepages=true y acto seguido nos salimos del procedimeinto con el exit sub. Al indicar que hay nuevas páginas, volverá a ejecutarse el metodo print de printdocument, por lo que si añadimos al procedimiento un contador, podemos hacer que despues de imprimir la primera parte del código, se salga y al volver a entrar el contador lo pasa a otra línea de código donde puede existir otra vez e.hasmorepages=true y exit sub, o si es la última página simplemente termina el procedimeinto y no se ejecuta más veces al no volver a indicarle e.hasmorepages=true.
Mi trabajo me ha costao pero por fin consigo hacer lo mismo que antes con el vb6 se podía hacer con el famoso printer.print "Linea de prueba".
Además, si se añade al formulario un PrintPreviewDialog1, y en su poropiedad Document le ponemos el PrintDocument1, y en un Button ponemos el siguiente código:
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.WindowState = FormWindowState.Maximized
PrintDocument1.DefaultPageSettings.Landscape = True 'apaisado
PrintPreviewDialog1.ShowDialog()
Tendremos un preview de lo que se va a imprimir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar