Impresión en matriz de punto,

El tema es impresión enmatrizd e punto me dijeron que hay que sacar algo gráfico de la imptresion cuando mando a imprimir

1 Respuesta

Respuesta
1
Haber...
Este método es para imprimir en formato texto o ascii en la printer matriz de punto.
El tamaño de la hoja no importa, ya que lo que imprime es un archivo de tipo txt que en puedes ver en DOS incluso con el edit.
A lo mejor no entendí la pregunta disculpa, si no era esa.
Pero esto imprime en cualquier tipo de hoja, solo tu debes dar las dimensiones.
[email protected]
No, vos entendiste bien la pregunta yo me explique mal
¿Es en tiempo de ejecución o hay que entrar en el edit e imprimir?
Lo de las dimensiones se las doy yo. Ok.
Es en tiempo de ejecución
Al parecer el ejemplo no llego completo.
Si quieres me envías tu email y te mando nuevamente el ejemplo, pero completo
[email protected]
Yo trabajo con hojas grandes en formato continuo.
12 pulgadas x 38cm
¿Mandas a imprimir en tiempo de ejecución?
Matriz de punto
Imprimir en un Puerto LPT1 es lo más simplícimo que existe (aya oye !)
Requiere internet explorer 5 o superior
Esta instrucción me dio resultado en el NT 4.0 así que hay que probarla en el XP, pero debe ser lo mismo.
Solución Propuesta por Raúl Correa V.
Al iniciar el programa (el primer formulario que aparece) pregunta si existe un archivo .BaT (por lotes)
Que es el que imprime en el lpt1.
Nota : en cada botón imprimir yo genero un archivo con el nombre de Temp.Tmp en el disco C: así me evito colisiones en la red, pero antes pregunto si existe, si es así, lo elimino y luego genero el archivo.
Función que permite verificar si el archivo existe
Function ArchivoExiste(EspecificaciondeArchivo as String) As Boolean
'verifica la existencia del archivo especificado
Dim fso, Mensaje
ArchivoExiste = True
Set fso = CreateObject("Scripting.FileSystemObject")
If Not (fso.FileExists(EspecificaciondeArchivo)) Then
ArchivoExiste = False
End If
End Function
En el primer formulario pregunto si el archivo bat existe, si no es así, el programa lo crea (es importante, eso sí, que en las propiedades el archivo bat, se especifique Cerrar al salir)
Private Sub Form_Load()
If Not ArchivoExiste("c:\imprime.bat") Then
Open "c:\imprime.bat" For Append As #1
Print #1, "cd\"
Print #1, "type c:\temp.tmp >prn"
Close #1
End If
End Sub
Una vez listo esto, generamos el archivo.
Ejemplo de Botón Imprimir.
Dim Dos as Variant
Private Sub BtnImprimir_Click()
Me.MousePointer = 11
Kill ("c:\temp.tmp") ?elimna el archivo TEMP.TMP
Open "c:\temp.tmp" For Append As #1 ?apertura del archivo para escribir
PAG = 0
Call Cabecera ?formato de la cabecera
With InformeGrid
For A = 1 To InformeGrid.Rows - 1
columna1 = EspacioDespues(.TextMatrix(A, 0), 11) ?imprime una columna
columna2 = EspacioAntes(.TextMatrix(A, 1), 6)
columna3 = EspacioDespues(.TextMatrix(A, 2), 30)
columna4 = EspacioDespues(.TextMatrix(A, 3), 7)
columna5 = EspacioAntes(Format(.TextMatrix(A, 6), "#,#0.#0"), 14)
Print #1, " " & columna1 & " " & columna2 & " " & columna3 & " " & columna4 & " " & columna5
Fila = Fila + 1 ?cuenta las linea impresas
If Fila >= 62 Then ?si llega al final de la hoja
For b = Fila To 65 ?imprime lineas en blanco para el salto de pagina
Print #1, ""
Next b
Fila = 0 ?vuelve la fila a 0 por ser una nueva pagina
Call Cabecera
End If
Next A
End If
End With
If Fila <= 60 Then ?termina de imprimir hace un salto de hoja
For b = Fila To 65 ?hoja tamaño carta tiene 65 lineas
Print #1, ""
Next b
End If
Close #1 ?cierra la escritura del archivo
Dos = Shell("c:\imprime.bat", vbMinimizedNoFocus) ?ejecuta la instrucción imprime.bat
Me.MousePointer = 0
End Sub
Función que genera columnas utilizando espacios
Function EspacioAntes(Detalle As String, Largo As Integer) As String
largoanterior = Len(Detalle)
If largoanterior > Largo Then
Detalle = Mid(Detalle, 1, Largo)
Largoante

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas