Pregunta: | 11572 - IMPRIMIR FORMULARIO CENTRADO |
Autor: | Martin Jimenez |
Hola,quisiera saber si alguien me puede ayudar ,ya que soy nuevo en vb6 y mi pregunta es como puedo hacer para que todo un form a la hora de imprimirlo con el metodo printform
salga centrado en la hoja gracias y saludos... form1.printform printer.enddoc |
Respuesta: | Manuel B.F. |
Hola buenos días. A mi me pasa el mismo caso que la respuesta de Alfonso XIV. Necesito que el formulario que tengo en Excel, como solo ocupa medio dina A4, me lo repita otra vez en la misma página. Así tengo los datos rellenados e impresos en original y copia. No entiendo mucho de Excel y no se como acoplar la función que dice Alfonso que a él le va bien. Yo, dentro del botón que tiene el mismo formulario ( IMPRIMIR ), le he puesto el código Me.PrintForm. Como he dicho me imprime el formulario, pero con todas las variaciones que he probado, no ha habido manera de que me imprima dos veces en la misma hoja. Alguna ayuda, por favor |
Respuesta: | Alfonso XIV |
Si quieres una impresión especial, vete olvidando del método printform. Es muy cómodo pero muy básico, se limita a enviar el formulario, con la resolución de pantalla, y enviar un salto de página a la impresora. Ya está. Yo tuve que ingeniármelas para imprimir un formulario 2 veces en la misma hoja (p.ej., un recibo por duplicado) con el menor trabajo posible. Y se me ocurrió enviar los controles del formulario a la impresora con el objeto \"PRINTER\", a través de una rutina genérica que escribí.
El esquema básico de mi rutina era: Public Sub ImprForm(Formulario as Form) Dim Ctrl as Control For each Ctrl in Formulario.controls If typeof ctrl is label or typeof ctrl is textbox then printer.currentx=ctrl.left printer.currenty=ctrl.top printer.print ctrl endif next End Sub Puedes adaptarla para centrar el formulario, calculando un offset o desplazamiento desde el margen izquierdo del papel. Para ello sólo tendrias que restar el ancho (en twips) del formulario (.width) del ancho del objeto Printer y dividirlo entre 2. Ese offset se lo sumarias a los valores de printer.currentx. |