Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Febrero 15, 2013, 04:28:30 pm
-
Estoy preparando unos reportes con el objeto Printer.Print.
y he visto que algunos le ponene el Scale mode diferentes formas cual es el mas recomendable y por que.
Printer.ScaleMode = 6
Printer.Scale (0, 0)-(2100, 2970)
Printer.ScaleMode = vbPixels
Printer.ScaleMode = vbCentimeters
Printer.ScaleMode = vbMillimeters
Yo quiero imprimir imagenes y letras en la hoja.
-
Entiendo que es para trabajar en en la Escala que te sientas mas cómodo vos...
-
El más recomendable es usar los ScaleMode, y para impresion, te convieine usar vbMillimeters
OJO! Tambien influye la configuración del tamaño del papel, no es lo mismo si tienes configurado A4 cuando vas a imprimir en oficio o "carta"
Mira los tamaños y sus constantes (http://msdn.microsoft.com/es-es/library/microsoft.visualbasic.powerpacks.printing.compatibility.vb6.printer.papersize.aspx)
-
Ok, usare vbMillimeters
Ahora si tengo una imagen de 200x200 y usando el objeto Printer.PaintPicture que medidas tengo que poner en tamaño1 y tamaño2, por que según esta pagina para convertir de pixeles a milimetros http://www.translatorscafe.com/cafe/units-converter/typography/calculator/pixel-(X)-to-centimeter-%5Bcm%5D/ (http://www.translatorscafe.com/cafe/units-converter/typography/calculator/pixel-(X)-to-centimeter-%5Bcm%5D/) 200 pixeles = 52 ("casi 53") y si pongo ese 52 no sale exactamente el tamaño de la imagen, quiero que salgo sin dimensionar la imagen como.
Printer.PaintPicture LoadPicture("c:\foto.jpg"), 10, 50, tamaño1, tamaño2
el 10 y 50 son las posiciones de la imagen en la hoja.
el 200 y 200 son tamaño de la imagen.
Ejemplo: El azul es el original el rojo es lo que imprimi con Printer.PaintPicture
(http://snag.gy/cWVVv.jpg)
-
Si quieres que salga en "tamaño real" no debes poner tamaño1 ni tamaño2, solo pon las coordenadas de donde empieza (supongo que serian como los "Left y Top" de los controles
-
La imagen original tiene 200x200, Pero igual siempre un 30 mas le agrega de tamaño serian 230x230 al imprimir en la hoja.
Printer.PaintPicture LoadPicture("c:\hola.jpg"), 20, 90
PosicionX = 20
PosicionY = 90
-
le queres agregar vos ese 30px más? o te lo agrega sola la impresora y no queres que pase eso
Tambien algo para decir, es que esa regla de tantos pixeles no siempre es cierto, ya que depende de los DPI y/o PPI (tanto de la imagen como impresora) así que... mide en la realidad si sale como deberia ser :P
-
Si Raul el no mas agrega solo.
Esta es la imagen que uso como ejemplo ahora y tiene 200x200
(http://img26.imageshack.us/img26/2522/holauz.jpg)
Al imprimir con este codigo que vos me dijiste que le saque el tamaño1 y tamaño2, siempre le agregra un 31x31 o sea al imprimir ya tiene 231x231 en la hoja.
Printer.PaintPicture LoadPicture("c:\hola.jpg"), 20, 90
20 y 90 son la posicion de la imagen en la hoja.
-
Donde estas imprimiendo? Porque no pruebas imprimr un cuardado sin relleno y con borde fino y lo compruebas en una impresora de verdad :P
-
Probe de 2 formas y es un cuadro rrelleno azul como esta ahi en la imagen, imprimo con una impresora HP Deskject 2660 y tambien con el doPDF "Impresora virtual", si llevo a otro programa impreme bien todo normal.