Como puedo alinear texto con el objeto printer es decir Printer. Print "hola" Printer. Print "como estas" Necesito que al imprimir con la impresora tengan el mismo ancho, osea que aparezca así h o l a Como estas
No entiendo muy bien tu pregunta. Si te refieres a imprimir las letras separadas, me temo que tendrás que hacerlo a mano, a no ser que haya alguna librería que lo haga ( y yo desconozca ).
Printer: CurrentX y CurrentY. Pero si lo que quieres es obtener lo márgenes mínimos o predeterminados de la impresora por defecto (para calcular el tamaño del area imprimible) tienes dos posibilidades: 1.-Con objeto Printer 'Márgen predeterminado superior en twips (1 cm = 566'9 twips) Public Function TopOffset() As Long TopOffset = (Printer.Height - Printer.ScaleHeight) End Function 'Margen predeterminado izquierdo en twips Public Function LeftOffset() LeftOffset = (Printer.Width - Printer.ScaleWidth) End Function 'Los margenes derecho= izquierdo, inferior=superior 2.- Mediante API '*****************Declaraciones de Módulo***************************** Declare Function GetDeviceCaps Lib "gdi32" _ (ByVal hDC As Long, ByVal nIndex As Long) As Long 'Margen X del área física imprimible Const PHYSICALOFFSETX As Long = 112 'Margen Y del área física imprimible Const PHYSICALOFFSETY As Long = 113 '*****************Function o Sub****************************************** Dim LeftOffset As Long, TopOffset As Long ' Iniciar un trabajo de impresión para obtener un Printer.hDC) valido Printer.Print Space(1) Printer.ScaleMode = vbTwips ' Obtener el desplazamiento del area imprimible de la página en twips LeftOffset = Printer.ScaleX(GetDeviceCaps(Printer.hDC, _ PHYSICALOFFSETX), vbPixels, vbTwips) TopOffset = Printer.ScaleY(GetDeviceCaps(Printer.hDC, _ PHYSICALOFFSETY), vbPixels, vbTwips) Para ajustar exactamente la etiqueta, debes calcularla a partir de los márgenes predeterminados y después usar CurrentX y CurrentY, sabiendo : 1.- Que éstas comienzan en 0 a partir de las cifras dadas por dichos márgenes, es decir, si el margen izquierdo predeterminado es 280 twips, ese punto coincide con Printer. CurrentX=0. 2.- Que CurrentX debe especificarse por cada línea de texto 3.- Que la longitud de cada línea se puede calcular con : Printer. TextWidth(sCadTrabajo) y cortandola con salto de carro vbCrLf si es necesario. Y la altura se calcula con Printer. TextHeight("A"). Las cifras resultantes se refieren a la fuente y tamaño seleccionadas con Printer. Font. Name y Printer. Font. Size. 4.- Que es mejor ajustar distancias de margenes y separaciones de etiquetas con espacios que con tabuladores. La longitud de un espacio se calcula con Printer. TextWidth(" "). El número de espacios necesarios para obtener un margen o una separación será: LongitudDeseada/ Printer. TextWidth(" ") 5.- Que aunque el salto de línea se hace automáticamente con vbCrLf con un promedio de la altura de la fuente, también se debe especificar CurrentY por línea en caso de que quieras distancias verticales especiales.
- Anónimoahora mismo
Respuesta de denciso
0
0
denciso, Soy una persona multifacética, tanto manejo la informática,...
Solamente lo puedes hacer a mano, el printer no maneja formateo de textos, maneja posiciones mediante coordenadas.
En la siguiente liga: http://www.planetsourcecode.com/vb Localizas una aplicación que trabaja reportes en word.
- Anónimoahora mismo
Respuesta de achalay12
-1
-1
achalay12, Estoy muy bien capacitado en Visual Basic
Disculpa que tarde tanto en responderte, lo que pasa es que estoy con mucho trabajo y casi no puedo conectarme para responder las preguntas. En este momento no te puedo ayudar, pero preguntales a los expertos de más arriba, decile que vas de parte mía y te responden lo más bien. De nuevo disculpame. Suerte!