Saber tipo de impresora

08/11/2003 - 20:24 por Desarrollo | Informe spam
Soy nuevo en VFP, como puedo saber que tipo de impresora es la que
seleccione con el getprinter(), es decir si la impresora que selecciones es
laser, inyección o si es de matriz

Tengo un formulario en el cual muestro los informes de la aplicación, al
momento de seleccionar la impresora debo de saber si tengo que hacer una
impresión gráfica o en modo texto

También si existe algún identificador único para la impresora, como si fuera
un número de serie, por ejemplo el disco duro de la pc tiene un número de
serie único, esto me serviría para identificar una impresora aunque se le
cambie el nombre compartido en la red

de antemano, gracias por la ayuda recibida

Preguntas similare

Leer las respuestas

#1 David Amador \(Davphantom\)
09/11/2003 - 16:49 | Informe spam
No estoy seguro pero revisa la funciòn PRTINFO( ) talvez te pueda ayudar
.

David Amador Tapia
WebMaster de La Web de Davphantom
www.davphantom.net
Cartagena. Colombia
Tel. (5) 6581523 - 6621502 - Cel 310-6581865


"Desarrollo" escribió en el mensaje
news:u$
Soy nuevo en VFP, como puedo saber que tipo de impresora es la que
seleccione con el getprinter(), es decir si la impresora que selecciones


es
laser, inyección o si es de matriz

Tengo un formulario en el cual muestro los informes de la aplicación, al
momento de seleccionar la impresora debo de saber si tengo que hacer una
impresión gráfica o en modo texto

También si existe algún identificador único para la impresora, como si


fuera
un número de serie, por ejemplo el disco duro de la pc tiene un número de
serie único, esto me serviría para identificar una impresora aunque se le
cambie el nombre compartido en la red

de antemano, gracias por la ayuda recibida


Respuesta Responder a este mensaje
#2 Samuel
11/11/2003 - 15:50 | Informe spam
Ya chequé esa función, y no es lo que busco, pero tal vez con un poco de
ingenio me pudiera servir.

De todas formas gracias por el apoyo recibido Davphantom.
Respuesta Responder a este mensaje
#3 Eduardo Ascanio N.
11/11/2003 - 16:09 | Informe spam
Si lo consigues me AVISAS, tengo AÑOS intentando lo mismo y NADA

Yo lo que hago es que "atrapo" el nombre de la impresora que el usuario
selecciono, si es una "CITIZEN" entonces eligió una matriz de punto y así
sucesivamente.
Creo (y que me corrijan los guros) que no existe ninguna función "nativa"
que nos de esta información, pienso yo que tiene algo que ver con Windows y
como maneja las impresoras, el SO tan solo necesita saber que es un
dispositivo de salida tipo Printer y mas nada.

Te anexo dos rutinas interesantes (no recuerdo los nombres de sus creadores,
pero las recogí de alguno de los foros de FoxPro):

1*- R U T I N A UNO
****************************************************************************
**
* Obtener información sobre el dispositivo de impresión como la impresora y
puerto o fichero y ruta.
*
* Función: INFO_IMPRE
* Propósito: Averigua el estado de SET PRINTER TO, el dispositivo de salida
de la impresora, que
* puede ser hacia un fichero o hacia una impresora. Devuelve el tipo de
salida(Fichero o
* Impresora), el nombre de la impresora o del Fichero y el Puerto o Ruta.
* Parámetros: Necesita recibir un Array(Arreglo) pasado por referencia.
* Autor: Víctor Brasó - alias: Balmes
* Fecha: 28/07/2003
*
****************************************************************************
**
* Ejemplo:
local APTR

dimension APTR(1)

=INFO_IMPRE(@APTR)
?APTR(1)
?APTR(2)
?APTR(3)

**********************
function INFO_IMPRE(ATMP)
local SDEVICE, SNAME, SPUERTO_RUTA, APRS, NH

* Se inicializan las variables
store "" to SDEVICE, SNAME, SPUERTO_RUTA

* Se comprueba si la salida de impresora es hacia un archivo...
SDEVICE=set("PRINTER",1)

* Si NO es un fichero...
if empty(SDEVICE) or SDEVICE$".LPT1.LPT2.LPT3.LPT4" THEN
SDEVICE="Impresora"
SNAME=set( 'PRINTER',3 ) && Nombre de la impresora predeterminada de VFP,
si
&& se desea la predeterminada de Windows, cambiar
&& por SET( 'PRINTER',2 ).
dimension APRS(1)
* Se recoge la información de las impresoras instaladas y de los puertos a
los que están conectadas...
=aprinters(APRS)
*Se busca la impresora obtenida anteriormente...
for NH=1 to alen(APRS,1)
if upper(APRS(NH,1))==SNAME THEN
SPUERTO_RUTA="Puerto: "+APRS(NH,2)
exit
endif
next
else
SNAME=justfname( SDEVICE ) && Nombre del Fichero
SPUERTO_RUTA="Ruta: "+justpath( SDEVICE ) && Ruta del Fichero
SDEVICE="Fichero"
endif

dimension ATMP(3)
ATMP(1)="Dispositivo: "+SDEVICE
ATMP(2)="Nombre: "+SNAME
ATMP(3)=SPUERTO_RUTA
endfunc

2*- R U T I N A DOS
* Diseña un form con un ComboBox y en el INIT (del combo) escribe lo
siguente:

Local Array AXP(1)
=Aprinters(AXP)
Local M.I, M.C

For M.I=1 To Alen(AXP,1)

This.AddItem(Iif(Left(AXP[M.I,1],1)=='\'
,'\','' )+Uppe(Allt(AXP[M.I,1])),M.I)

Endfor

This.Value=Uppe(Allt(Set('PRINTER',3)))



* con esta intruccion sabes lo que eligio el usuario: Thisform.Combo1.value


"David Amador (Davphantom)" escribió en
el mensaje news:%
No estoy seguro pero revisa la funciòn PRTINFO( ) talvez te pueda ayudar
.

David Amador Tapia
WebMaster de La Web de Davphantom
www.davphantom.net
Cartagena. Colombia
Tel. (5) 6581523 - 6621502 - Cel 310-6581865


"Desarrollo" escribió en el mensaje
news:u$
> Soy nuevo en VFP, como puedo saber que tipo de impresora es la que
> seleccione con el getprinter(), es decir si la impresora que selecciones
es
> laser, inyección o si es de matriz
>
> Tengo un formulario en el cual muestro los informes de la aplicación, al
> momento de seleccionar la impresora debo de saber si tengo que hacer una
> impresión gráfica o en modo texto
>
> También si existe algún identificador único para la impresora, como si
fuera
> un número de serie, por ejemplo el disco duro de la pc tiene un número


de
> serie único, esto me serviría para identificar una impresora aunque se


le
> cambie el nombre compartido en la red
>
> de antemano, gracias por la ayuda recibida
>
>


Respuesta Responder a este mensaje
#4 Samuel
11/11/2003 - 17:07 | Informe spam
Ya había hechado un vistazo a esos procedimientos, de hecho tengo aplicado
uno parecido a la rutina uno, lo que hago es lo sigueinte:

Tengo un formulario donde doy de alta los nombres y rutas de las impresoras
y ahí asigno el tipo de impresora, es decir, si es de matriz o si es
laser/inyección.

En el formulario de informes, seleciono el reporte a imprimir y después
pregunto a que impresora será enviado con "set printer to name
getprinter()", una vez selecionada la impresora, voy y busco el nombre en la
tabla y checo si la impresora es de tipo matriz o laser, dependiendo de este
dato es la impresión que voy a hacer, si la impresión es gráfica mando
imprimir con el report from de lo contrario mando imprimir con una clase que
me proporcionó Martin Zamudio.

este método no es el óptimo por algunos detalles por ejemplo si algún
usuario cambia de nombre a alguna impresora puedo obtener la ruta pero no el
tipo de impresora que es, este problema se resolveria si existiese algun
identificador único que me permitiera reconocerla en la red, así, si se
cambiara de nombre o se cambiara físicamente de lugar sabría que tipo de
impresora es.

Espero que me haya explicado y no haber enredado las cosas, de todas maneras
gracias por el apoyo recibido Eduardo
Respuesta Responder a este mensaje
#5 Carlos Sancho
15/12/2003 - 19:07 | Informe spam
Hola

Yo utilizola funcion PRTINFO

SI prtinfo(7,nombre_impresora)=8 &&La impresora es matricial pues
indica tipo de alimentacion por TRACCION

Espero te sirva

Saludos

"Desarrollo" escribió en el mensaje
news:u$
Soy nuevo en VFP, como puedo saber que tipo de impresora es la que
seleccione con el getprinter(), es decir si la impresora que selecciones


es
laser, inyección o si es de matriz

Tengo un formulario en el cual muestro los informes de la aplicación, al
momento de seleccionar la impresora debo de saber si tengo que hacer una
impresión gráfica o en modo texto

También si existe algún identificador único para la impresora, como si


fuera
un número de serie, por ejemplo el disco duro de la pc tiene un número de
serie único, esto me serviría para identificar una impresora aunque se le
cambie el nombre compartido en la red

de antemano, gracias por la ayuda recibida


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida