Power Builder - tipo de papel

 
Vista:

tipo de papel

Publicado por el tigre (15 intervenciones) el 21/01/2004 16:58:59
una consulta listeros como hago para tener un tipo de papel predeterminado..me explico quisiera que tengo como medidas por ejemplo 125*150 cms.....yo tengo una impresora Oky microline pero no tiene la opcion que crear un tipo de papel diseñado por el usuario...en el power hay tipo de medidas pero no hay la que quiero...espero sugerencias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Definir tamaño de papel personalizado (1)

Publicado por Oscar (1178 intervenciones) el 21/01/2004 20:46:16
Definir un tamaño de papel personalizado, es otra pregunta clásica del foro; donde aún no se respondió satisfactoriamente. Probemos ésta alternativa:

1. Bajar el archivo powerprn.zip 157 KB), de:

http://prdownloads.sourceforge.net/powerprinter

2. Colocar el powerprn.dll en la misma carpeta donde está la aplicación.

3. En la ventana declarar las siguientes variables de instancia:
ulong prn_hndl
CONSTANT int DMPAPER_USER = 256
CONSTANT int DMPAPER_LETTER = 1

4. Declarar las siguientes Local External Funtions (sólo copiar y pegar):
function ulong CWin32Prn_CPP_CONSTRUCTOR() library "powerprn.dll"
subroutine CWin32Prn_CPP_DESTRUCTOR(ulong hdl) library "powerprn.dll"

Function long dwGetDefaultPrinterName (ulong hdl, ref string sDefaultPprinter) Library "powerprn.dll"
Function long dwGetPrinterList (ulong hdl, ref string sDefaultPprinter) Library "powerprn.dll"
Function Long dwGetDefaultPrinterPort (ulong hdl, ref string sDefaultPprinter) Library "powerprn.dll"
Function Long dwGetDefaultPrinterDriver (ulong hdl, ref string sDefaultPprinter) Library "powerprn.dll"
Function Long dwSetDefaultPrinter (ulong hdl, string sDefaultPprinter) Library "powerprn.dll"
Function Long dwSetPaperSize(ulong hdl, int iPaperSize) library "powerprn.dll"
Function Long dwGetPaperLength(ulong hdl, ref int iPaperLength) library "powerprn.dll"
Function Long dwSetPaperLength(ulong hdl, int iPaperLength) library "powerprn.dll"// printer orientation

//(CONTINUA...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Definir tamaño de papel personalizado (2)

Publicado por Oscar (1178 intervenciones) el 21/01/2004 20:49:05
//(CONTINUÁ la declaración en Local External Functions...)

Function Long dwGetPrinterOrientation(ulong hdl, ref int iPrnOrientation) library "powerprn.dll"
Function Long dwSetPrinterOrientation(ulong hdl, int iPrnOrientation) library "powerprn.dll"
Function Long dwGetPaperWidth(ulong hdl, ref int iPaperWidth) library "powerprn.dll"
Function Long dwSetPaperWidth(ulong hdl, int iPaperWidth) library "powerprn.dll"
Function Long dwGetPaperSize(ulong hdl, ref int iPaperSize) library "powerprn.dll"

5. Colocar este script en el botón que va a realizar la impresión

integer ll_row
long edw,esz,elen,ewdth,ll_length,ll_width

//dw_1.retrieve(......)
dw_1.retrieve

ll_length = 1040 // Colocar el alto (soportado por la impresora)
ll_width = 2100 // Colocar el ancho (soportado por la impresora)

prn_hndl=CWin32Prn_CPP_CONSTRUCTOR()
esz=dwSetPaperSize(prn_hndl, DMPAPER_USER)

elen=dwSetPaperLength(prn_hndl, ll_length)
ewdth=dwSetPaperWidth(prn_hndl, ll_width)

dw_1.print()

dwSetPaperSize(prn_hndl, DMPAPER_LETTER)
CWin32Prn_CPP_DESTRUCTOR(prn_hndl)

Nota: Esa es la forma cómo se puede personalizar el tamaño del papel. Me gustaría que prueben con diferentes impresoras y SO para reportar si existen problemas. De esa manera nos quedamos o rechazamos este método.

Fuente: Adaptado de un foro en inglés.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar