Configurar Impresora - tipo de hoja

Disculpa que te moleste con algunas consultas o... Mejor dicho urgencias que requiero resolver..
Bueno voy a mi pregunta...
Quisiera saber si existe forma de cambiar el tipo de hoja (predeterminada) a la impresora.. Antes de imprimir.. Pero por código... Existe un detalle. El tipo de hoja en cuestión en un tamaño personalizado.. Osea que el power builder 9.0.(en el que trabajo junto con sql server 2000), no lo considera en sus tipos de hojas.. En tiempo de diseño del datawindows..
Bueno.. Esa es una de mis dudas.. Y otra si pudieses resolverlas. Es ..
Guardar la configuración que le doi a la impresora.. Como por ejemplo:
- Impresora predeterminada
- Tipo de hoja, etc
En un archivo txt o en un temporal.. Para de esta manera evitar.. Configurar la impresora una y otra vez .. Cada vez que ejecute el sistema.. Y por consecuencia.. Examinar la información que guarde. Y actualizarla en el sistema operativo.. Cada vez que arranque el sistema..
Me seria de gran ayuda esta información.. Si es que la tuvieras.

2 Respuestas

Respuesta
1
Lo que puedes hacer, es configurar un tipo de hoja, en "Impresoras y Faxes" del Window, no te sugiero que lo trabajes directamente con el PowerBuilder porque seria muy tedioso, y a veces no da los resultados deseados.
Para configurar un tipo de hoja personalizado, has lo siguiente:
1. Entra a Inicio / Impresoras y Faxes (supongo que tienes el Windows XP)
2. En la ventana que te muestra los iconos de tus impresoras anda al menu Archivo / Propiedades del Servidor
3. Te aparece una ventana en donde puedes definir los nuevos parámetros para tu tipo de hoja. Clickea el chek "Crear un formulario nuevo", le pones un nombre por ejemplo "Formato1", o "Factura02", y le asignas el tamaño y margenes que va a tener.
4. Una vez configurada las preferencias del tipo de hoja, haces click en "Guardar Formulario"
Con estos pasos, ya has definido un nuevo tipo de hoja, ahora cuando selecciones el tipo de impresión en cualquier programa del Windows, no solo en Power Builder, va a estar disponible este nuevo formato que se ha creado, junto con los ya conocidos A4, carta, ocifio, etc. Tu nuevo formato aparecerá al final de la lista.
Ahora, ya puedes configurar tu DataWindows con este tipo de hoja. Esta es la mejor opción con que se pueden trabajar los tipos de hoja no estándares del Windows, el único inconveniente es que se debe configurar para cada usuario del programa.
Saludos nuevamente, yo aquí fastidiando con mis dudas..
Muchas gracias por atender mi interrogante.. pero.. ete ahí un detalle.. nuevamente..
Ya tengo creados los formatos de hoja.. con sus medidas respectivas.. obviamente lo hice de la manera que explicas.. pero... aquí va nuevamente.. mi pregunta..
Voy al datawindows y cuando quiero poner.. la hoja personalizada(la que yo cree) no la veo por ningún lado en la lista de de tipos de hoja.. del PB 9.0.. a menos que la hoja que señalas en tu explicacacion sea la DEFAULT()... :S! ... De lo contrario no entiendo por que io no lo puedo ver...
Y bueno ahí una pequeña parte en tu explicación que no entiendo
"el único inconveniente es que se debe configurar para cada usuario del programa. "
Aparte de esto te comento que he estado indagando.. y creo que es posible hacer estas configuraciones modificando directamente el RegEdit... quizá me puedas ayudar por ese lado... :D!
Nuevamente gracias.
Carlos. ^^
En ese caso, usa el comando PrintSetup(), antes de mandar la vista previa, aquí puedes seleccionar el formato nuevo.
Fernando
Saludos.
Eh weno agradesco tu atencion a mi consulta..
Pero el uso del Printsetup().. es precisamente lo que quiero evitar. En otras palabras claras y simples.. quiero configurar la impresora(impresora_predeterminada, tipo de hoja, etc) directamente desde el código del sistema... lo máximo que le pediré al usuario es que elija la impresora... pero luego lo demás va por cuenta del sistema.
Si a tu parecer no ahí otra manera de resolver mi interrogante. Házmelo saber. Para cerrar la pregunta.
Gracias
Carlos
Te recomiendo que hagas lo siguiente:
1. Creas tu nuevo formato tal como te indique
2. Te instalas una nueva impresora (en impresoras y faxes / agregar impresora), y a esta impresora le pones en formato predeterminado, el nuevo formato que creaste (click derecho / Propiedades / Configuración de dispositivo).
3. El datawindow diseñalo tratando que quepen los objectos en un areea del tamaño de tu formato, sin importar cuanto sobre a la derecha o hacia abajo.
4. En el programa, antes de mandar a imprimir, usa la función PrintSetPrinter(nombre_de_impresora) ej PrintSetPrinter('Epson_Factura01'). Con esta función, predeterminas por donde va a imprimir el DW, y la puedes usar para imprimir en las distintas impresoras instaladas en el Window
Saludos...
Interesante alternativo de solución.. ya la había visto antes pero no lo había tomado en cuenta...
Pero bueno te comento. toy tratando de dar solución a mi problemilla. Precisamente combinando ese instrucción que citas en tu ultima respuesta.. para especificar.. una "impresora para el sistema"..-esto muy aparte de la impresora predeterminada del sistema operativo- la cual elije el usuario.. y a la vez guardo este dato en mi archivo ini... je je esto para la siguiente vez que el usuario inicie el sistema... y no tenga que especificar nuevamente una impresora para las impresiones del sistema. Hasta que el decida hacerlo por su cuenta... y luego la tare de la hoja por default se la dejo al RegistrySET().. el cual me permite modificar el tipo de hoja de la impresora que el usuario elegio para el sistema... Jojo!... y bueno por ahora esto esta en teoría.. estoy por probarlo en las impresiones de los reportes propiamente dichos..
ojala que mi teoría.. tenga éxito! Hasta una próxima oportunidad y gracias por tu tiempo, atención y ayuda..
oie por cierto sabes algo de apis y más sobre la manipulación del regedit me interesa saber de eso.. y también sobre Power builder pero para Web..
Atentamente
Carlos ([email protected]) <-- para cualkier cosa ^^
Respuesta
1
Para determinar la impresora predeterminada:
PrintSetPrinter('HP 1512')
Para la orientación del papel:
ls_orientacion = 'datawindow.print.orientation = 1' //1:horizontal 2:vertical
Para el tipo de papel personalmente utilizo el printsetup(), y ahí elijo el tipo de papel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas