Quiero enviar a la impresora para que imprima por el frente y por el reverso de la hoja.
Esa funcionalidad se le puede decir desde las propiedades.... ¿Hay alguna forma de indicarle desde fivewin que lo haga?
Asi como existe una función para enviar a imprimir en apaisado, vertical, horizontal. ¿Alguna para imprimir a _?
Gracias
Imprimir a dos caras.
Hola,
Bueno, he hecho esto, pero con _ en TPreview, donde cuando se va a imprimir, el usuario puede escoger dentre paginas pares o paginas impares asi que se puede imprimir primeramente las paginas impares y despues las pares y se puede hacer esto con cualquier impresora. Si desean los detalles, los envio.
Saludos
Bueno, he hecho esto, pero con _ en TPreview, donde cuando se va a imprimir, el usuario puede escoger dentre paginas pares o paginas impares asi que se puede imprimir primeramente las paginas impares y despues las pares y se puede hacer esto con cualquier impresora. Si desean los detalles, los envio.
Saludos
Kleyber Derick
FWH / xHb / xDevStudio / SQLLIB
FWH / xHb / xDevStudio / SQLLIB
Hola Kleyber,
A ver si entiendo bien.... ¿Le das al usuario que escoja si quiere imprimir las hojas pares o impares?
Yo lo que busco es enviar desde FWH para que la impresora imprima en la misma hoja... la parte de arriba y la de atrás.
Lo que he visto es que mi impresora, no tiene esa propiedad, pero si las impresoras de mayor costo como una HP para oficina.
Saludos
Fernando
A ver si entiendo bien.... ¿Le das al usuario que escoja si quiere imprimir las hojas pares o impares?
Yo lo que busco es enviar desde FWH para que la impresora imprima en la misma hoja... la parte de arriba y la de atrás.
Lo que he visto es que mi impresora, no tiene esa propiedad, pero si las impresoras de mayor costo como una HP para oficina.
Saludos
Fernando
Exactamente eso, Fernando. Lo que pasa es que la mayoria de las impresoras no tiene dicha funcionalidad, pero asi como te comente, desde el preview se puede enviar primeramente las paginas impares y despues seria tan solamente invertir el papel en la impresora y entonces imprimir las paginas pares, haciendo asi lo que deseas.fleal wrote:Hola Kleyber,
A ver si entiendo bien.... ¿Le das al usuario que escoja si quiere imprimir las hojas pares o impares?
Yo lo que busco es enviar desde FWH para que la impresora imprima en la misma hoja... la parte de arriba y la de atrás.
Lo que he visto es que mi impresora, no tiene esa propiedad, pero si las impresoras de mayor costo como una HP para oficina.
Saludos
Fernando
Lo que hago en la verdad es asi: En la RPreview.prg puse un combobox con las opciones y cambie esto en el:
Code: Select all
static function PrintPage()
local hOldRes := GetResources()
local hMeta := oMeta1:hMeta
local oDlg, oRad, oPageIni, oPageFin
LOCAL aModo := {"Todas as Páginas","Páginas Pares","Páginas Ímpares"}
PRIVATE nOption := 1 ,;
nFirst := 1 ,;
nLast := len(DEVICE:aMeta)
PRIVATE nCopias := nItem := 1
// if nLast == 1
// PrintPrv(nil, nOption, nFirst, nLast)
// RETU nil
// endif
SET RESOURCES TO cResFile
DEFINE DIALOG oDlg RESOURCE "PRINT"
REDEFINE BUTTON ID 101 OF oDlg ;
ACTION PrintPrv(oDlg, nOption, nFirst, nLast)
REDEFINE BUTTON ID 102 OF oDlg ACTION oDlg:End()
REDEFINE RADIO oRad VAR nOption ID 103,104,105 OF oDlg ;
ON CHANGE iif(nOption==3 ,;
(oPageIni:Enable(),oPageFin:Enable()) ,;
(oPageIni:Disable(),oPageFin:Disable()) )
REDEFINE GET oPageIni ;
VAR nFirst ;
ID 106 ;
PICTURE "@K 99999" ;
VALID iif(nFirst<1 .OR. nFirst>nLast,(MessageBeep(),.F.),.T.) ;
OF oDlg
REDEFINE GET oPageFin ;
VAR nLast ;
ID 107 ;
PICTURE "@K 99999" ;
VALID iif(nLast<nFirst .OR. nLast>len(DEVICE:aMeta), ;
(MessageBeep(),.F.),.T.) ;
OF oDlg
REDEFINE GET oCopias VAR nCopias ID 108 of oDlg PICTURE "999" SPINNER ;
ON UP (++nCopias,if(nCopias>999,nCopias:=999,),oCopias:Refresh() );
ON DOWN (--nCopias,if(nCopias<1,nCopias:=1,),oCopias:Refresh() ) ;
REDEFINE COMBOBOX oItem VAR nItem ITEMS aModo ID 109 OF oDlg
oPageIni:Disable()
oPageFin:Disable()
SetResources(hOldRes )
ACTIVATE DIALOG oDlg
return nil
Code: Select all
static function PrintPrv(oDlg, nOption, nPageIni, nPageEnd)
local oDevice := DEVICE
local aFiles := oDevice:aMeta
local hMeta := oMeta1:hMeta
local nFor, nXCopia, nTipoImp
CursorWait()
StartDoc(oDevice:hDC, oDevice:cDocument )
DO case
case nOption == 1 // All
FOR nXCopia = 1 to nCopias
nTipoImp := nFirst
FOR nFor := 1 TO len(aFiles)
if nItem = 1 // All Pages
#ifdef __CLIPPER__
StartPage(oDevice:hDC)
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
EndPage(oDevice:hDC)
#else
StartPage(oDevice:hDC)
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
EndPage(oDevice:hDC)
#endif
elseif nItem = 2 // Even Pages
if mod(nTipoImp,2)=0
#ifdef __CLIPPER__
StartPage(oDevice:hDC)
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
EndPage(oDevice:hDC)
#else
StartPage(oDevice:hDC)
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
EndPage(oDevice:hDC)
#endif
endif
elseif nItem = 3 // Odd Pages
if mod(nTipoImp,2)=1
#ifdef __CLIPPER__
StartPage(oDevice:hDC)
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
EndPage(oDevice:hDC)
#else
StartPage(oDevice:hDC)
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
EndPage(oDevice:hDC)
#endif
endif
endif
++nTipoImp
NEXT
NEXT
case nOption == 2 // Current page
FOR nXCopia := 1 to nCopias
StartPage(oDevice:hDC)
hMeta := oMeta1:hMeta
#ifdef __CLIPPER__
PlayMetaFile( oDevice:hDC, hMeta )
#else
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
#endif
EndPage(oDevice:hDC)
NEXT
case nOption == 3 // Range
FOR nXCopia := 1 to nCopias
nTipoImp := nFirst
FOR nFor := nPageIni TO nPageEnd
if nItem = 1 // All Pages
StartPage(oDevice:hDC)
#ifdef __CLIPPER__
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
#else
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
#endif
EndPage(oDevice:hDC)
elseif nItem = 2 // Even Pages
if mod(nTipoImp,2)=0
StartPage(oDevice:hDC)
#ifdef __CLIPPER__
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
#else
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
#endif
EndPage(oDevice:hDC)
endif
elseif nItem = 3 // Odd Pages
if mod(nTipoImp,2)=1
StartPage(oDevice:hDC)
#ifdef __CLIPPER__
hMeta := GetMetaFile(aFiles[nFor])
PlayMetaFile( oDevice:hDC, hMeta )
DeleteMetafile(hMeta)
#else
hMeta := GetEnhMetaFile(aFiles[nFor])
PlayEnhMetaFile( oDevice:hDC, hMeta,, .t. )
DeleteEnhMetafile(hMeta)
#endif
EndPage(oDevice:hDC)
endif
endif
++nTipoImp
NEXT
NEXT
endcase
EndDoc(oDevice:hDC)
CursorArrow()
if oDlg != nil
oDlg:End()
endif
return nil
A ver si te sirve (y a los otros que lo desean)
Saludos,
Kleyber Derick
FWH / xHb / xDevStudio / SQLLIB
FWH / xHb / xDevStudio / SQLLIB