Imprimir en fondo negro y letra blanca
Imprimir en fondo negro y letra blanca
En una impresora:
¿Cómo se puede hacer para imprimir la letra en blanco y el bondo en negro?. Es decir, hacer como si fuera el negativo.
Para imprimir normálmente nos deja elegir si queremos, Negrilla (bold), itálica, subrayado, tachado, pero no veo como elegir/cambiar el color de la letra y su fondo.
¿Cómo se puede hacer para imprimir la letra en blanco y el bondo en negro?. Es decir, hacer como si fuera el negativo.
Para imprimir normálmente nos deja elegir si queremos, Negrilla (bold), itálica, subrayado, tachado, pero no veo como elegir/cambiar el color de la letra y su fondo.
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- Antonio Linares
- Site Admin
- Posts: 42513
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 73 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
La clase TPrinter proporciona este método:
METHOD SayText( nRow, nCol, cText, nWidth, nHeight, oFont, cAlign, nClrText, nClrBack )
En donde puedes especificar el color del texto nClrText y el color del fondo nClrBack
METHOD SayText( nRow, nCol, cText, nWidth, nHeight, oFont, cAlign, nClrText, nClrBack )
En donde puedes especificar el color del texto nClrText y el color del fondo nClrBack
Re: Imprimir en fondo negro y letra blanca
Gracias Antonio.
Pero dos duda más:
Como ahora estamos usando el método cmsay,
1.- ¿nRow y nCol están en cm?.
2.- ¿A qué se refieren nWith y nHight? si el tamaño ya va dado en el oFont según el tipo de letra.
3.- ¿Qué valores se puede dar a cAlign?
Pero dos duda más:
Como ahora estamos usando el método cmsay,
1.- ¿nRow y nCol están en cm?.
2.- ¿A qué se refieren nWith y nHight? si el tamaño ya va dado en el oFont según el tipo de letra.
3.- ¿Qué valores se puede dar a cAlign?
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
METHOD SayText( nRow, nCol, cText, [nWidth], [nHeight], [oFont], [cAlign], [nClrText], [nClrBack], [cUnits] )
10th parameter is cUnits. Possible values are "INCHES","CM","MM","PIXEL". Case not sensitive. Default Pixels
cAlign:
"T" : Top
"B" : Bottom
"L" : Left
"R" : Right
Can be combined "TL", "TR", "BL", "BR"
Default is "TL" --> Top Left
We advise using the command instead of calling method directly:
10th parameter is cUnits. Possible values are "INCHES","CM","MM","PIXEL". Case not sensitive. Default Pixels
cAlign:
"T" : Top
"B" : Bottom
"L" : Left
"R" : Right
Can be combined "TL", "TR", "BL", "BR"
Default is "TL" --> Top Left
We advise using the command instead of calling method directly:
Code: Select all | Expand
#xcommand @ <nRow>, <nCol> PRINT TO <prn> TEXT <cText> ;
[SIZE <nWidth> [,<nHeight>] ] ;
[<unit: PIXEL,MM,CM,INCHES>] ;
[FONT <fnt>] ;
[ALIGN <aln>] ;
[COLOR <nTxt> [,<nBck> ] ] ;
[LASTROW <lrow>] ;
=> ;
[<lrow> := ] <prn>:SayText( <nRow>, <nCol>, <cText>, [<nWidth>], [<nHeight>], ;
[<fnt>], [<aln>], [<nTxt>], [<nBck>], [<(unit)>] )
#xcommand @ <nRow>, <nCol> PRINT TO <prn> IMAGE <img> ;
[SIZE <nWidth> [,<nHeight>] ] ;
[<unit: PIXEL,MM,CM,INCHES>] ;
[<lStr: STRETCH>] ;
[ ALPHALEVEL <nAlpha>] ;
[<lNoTrn: NOTRANSPARENT>] ;
[<lGray: GRAY> ] ;
[LASTROW <lrow>] ;
=> ;
[<lrow> := ] <prn>:PrintImage( <nRow>, <nCol>, <img>, [<nWidth>], [<nHeight>], ;
[<.lStr.>], [<nAlpha>], [!<.lNoTrn.>], [<.lGray.>], [<(unit)>] )
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
Sample Usage:
![Image](http://imagizer.imageshack.us/v2/xq90/923/kGKhic.png)
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oPrn
local nRow, oFont1
local oBrush, oBlack
DEFINE BRUSH oBrush FILE "c:\fwh\bitmaps\backgrnd\geige.bmp"
DEFINE BRUSH oBlack COLOR CLR_BLACK
PRINT oPrn PREVIEW
DEFINE FONT oFont1 NAME "Arial" SIZE 0,-30 BOLD OF oPrn
PAGE
@ 1,1 PRINT TO oPrn TEXT "WHITE ON BLACK" + CRLF + "TEXT" + CRLF + "TWO LINES" ;
SIZE 6,2 INCHES FONT oFont1 COLOR CLR_WHITE, CLR_BLACK ALIGN "TR" ;
LASTROW nRow
@ 3.5,1 PRINT TO oPrn TEXT "WHITE ON BRUSH" + CRLF + "TEXT" + CRLF + "TWO LINES" ;
SIZE 6,2 INCHES FONT oFont1 COLOR CLR_WHITE, oBlack ALIGN "BL" ;
LASTROW nRow
@ 6.0,1 PRINT TO oPrn TEXT "WHITE ON BRUSH" + CRLF + "TEXT" + CRLF + "TWO LINES" ;
SIZE 6,2 INCHES FONT oFont1 COLOR CLR_WHITE, oBrush ALIGN "C" ;
LASTROW nRow
ENDPAGE
ENDPRINT
RELEASE FONT oFont1
RELEASE BRUSH oBrush, oBlack
return nil
![Image](http://imagizer.imageshack.us/v2/xq90/923/kGKhic.png)
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Imprimir en fondo negro y letra blanca
Utilizo la versión de FW 15.01 y no admite ese saytext.
Debe de corresponder a una versión posterior.
No me ha sido posible utilizar el código de Nageswaragunupudi .
Debe de corresponder a una versión posterior.
No me ha sido posible utilizar el código de Nageswaragunupudi .
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
From Version FWH 16.04
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- karinha
- Posts: 7933
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Imprimir en fondo negro y letra blanca
Lo estoy intentando con los comandos siguientes, pero cuando lo hago con texto en blanco y fondo en negro no funciona:
Code: Select all | Expand
//Configura los colores a texto en negro y fondo en blanco
SetTextColor( oPrn:hDCOut, nrgb(0,0,0) ) //nrgb(0,0,0)=negro; nrgb(255,255,255)=Blanco
SetBkColor( oPrn:hDCOut, nrgb(255,255,255) )
oPrn:CmSay(nl, mrgiz, transform(11111.85,'99,999.99 €'), oFont2)
nl=nl+4*nsl
//Invierte los colores de texto y fondo
SetTextColor( oPrn:hDCOut, nrgb(255,255,255) ) //Texto Blanco
SetBkColor( oPrn:hDCOut, nrgb(0,0,0) ) //Fondo Negro
oPrn:CmSay(nl, mrgiz, transform(22222.85,'99,999.99 €'), oFont2)
//Devuelve los colores a la configuración normal.
SetTextColor( oPrn:hDCOut, nrgb(0,0,0) ) //Texto Negro
SetBkColor( oPrn:hDCOut, nrgb(255,255,255) ) //Fondo Blanco
- karinha
- Posts: 7933
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
Cual tu versión del fivewin? Mira aqui se ayuda:
http://fivewin.com.br/index.php?/topic/26826-imprimir-fonte-com-fundo-preto/#comment-278047
Saludos.
http://fivewin.com.br/index.php?/topic/26826-imprimir-fonte-com-fundo-preto/#comment-278047
Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Imprimir en fondo negro y letra blanca
Code: Select all | Expand
SetBkColor( oPrn:hDCOut, CLR_BLACK )
oPrn:CmSay( 10, 4, "Some tex to print", oFont, 10, CLR_WHITE, 2 )
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Imprimir en fondo negro y letra blanca
Por algún motivo que desconozco con solo el código de Nageswaranugupudi no me ha funcionado.
Sin embargo, con la idea obtenida de la recomendación de Kaninha he logrado construir una función para hacerlo.
Os dejo el código que incluye una con función con un ejemplo.
Gracias.
Sin embargo, con la idea obtenida de la recomendación de Kaninha he logrado construir una función para hacerlo.
Os dejo el código que incluye una con función con un ejemplo.
Gracias.
Code: Select all | Expand
/** Funcion para probar la impresora de Tikets.
Tiene que instalarse el Driver para la impresora.
Selecionar como predeterminada.
Si está conectada al LPT1 tiene que ser la única conectada al mismo.
Funciona igual que con cualquier impresora Windows.
**/
function pruebaprn_win(lprever,oPadre)
local nl:=0 // numero de linea que se está imprimiendo.
local pg:=1 // numero de página que se está imprimiendo.
local Ultpg:=1 // numero de páginas a imprimir.
local texto:=Space(62) // texto de la línea a imprimir.
local oPrN
local oFont1, oFont2, oFontCond, oFontCodBarras, oFontCodBarras2D, oFontBarrasQR
local fontsize := -8
local font2size:=-20
local nColStep :=0
local nsl := 4 * (-1)*(-6) / 100 // Alto en cm para el salto de linea. ¡EMPIRICO¡
local mrgiz:=0, mrgsu:=0 // En centímetros.
local oPen1, oPen2
local aPosImg:={}, aTamImg:={}, cFileImg:=''
default lPrever:=.T.
if lPrever = .f.
PRINT oPrn NAME "Prueba_PRN_"+dtos(date()) TO cNomImpresora
else
SeleccionaPrn()
PRINT oPrn NAME "Prueba_PRN_"+dtos(date()) TO cNomImpresora PREVIEW
endif
DEFINE FONT oFont1 NAME "ARIAL" SIZE 0, fontsize OF oPrn
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0, font2size BOLD OF oPrn
DEFINE FONT oFontCond NAME "consolas" SIZE 0, 8 OF oPrn
// 29/03/2017: LOS SIGUIENTES TIPOS PROBADOS OK CON LAS FUENTES QUE TRAE LA IMPRESORA DE TIKETS BIXOLON SRP-330II
DEFINE FONT oFontCodBarras NAME "Barcode3" OF oPrn
DEFINE FONT oFontCodBarras2D NAME "2D-CODE1" SIZE 0,-10 OF oPrn
DEFINE FONT oFontCodBarrasQR NAME "QR Code" SIZE 0,-10 OF oPrn
DEFINE PEN oPen1 width 1
DEFINE PEN oPen2 width 2
if empty( oPrn:hDC )
msgstop( "No hay impresora preparada" )
return NIL
endif
// Comienza el proceso de impresión.
PAGE
nl=mrgsu
nl=nl+1*nsl
oPrn:CmSay(nl ,mrgiz ,'Referencia: 12345' ,oFontCond)
CmLinea(oPrn,nl+2*nsl,mrgiz,nl+2*nsl,8,oPen1) // Línea a lo largo de la página.
nl=nl+1*nsl
oPrn:CmSay(nl+2*nsl,mrgiz+0.1,'ARTICULO DE PRUEBA Ñ',oFont1)
nl=nl+3*nsl
oPrn:CmSay(nl, mrgiz, 'ARTICULO DE PRUEBA Ñ', oFont2,8,,, 2)
nl=nl+4*nsl
//Configura los colores a texto en negro y fondo en blanco
SetTextColor( oPrn:hDCOut, nrgb(0,0,0) ) //nrgb(0,0,0)=negro; nrgb(255,255,255)=Blanco
SetBkColor( oPrn:hDCOut, nrgb(255,255,255) )
oPrn:CmSay(nl, mrgiz, transform(11111.85,'99,999.99 €'), oFont2)
nl=nl+4*nsl
//Cambia los colores de texto y fondo
PrnCmSaycolor(oPrn,nl,mrgiz,transform(22222.85,' 99,999.99 € Izda'),oFont2,nrgb(255,255,255),nrgb(255,0,0),,,)
PrnCmSaycolor(oPrn,nl+4*nsl,mrgiz,transform(33333.85,'99,999.99 € Dcha '),oFont2,nrgb(255,0,255),nrgb(0,255,0),1,8,1)
PrnCmSaycolor(oPrn,nl+8*nsl,mrgiz,alltrim(transform(44444.85,'99,999.99 € Center')),oFont2,nrgb(255,255,0),nrgb(0,0,255),1,,2)
PrnCmSaycolor(oPrn,nl+12*nsl,mrgiz,alltrim(transform(44444.85,'99,999.99 € Center')),oFont2,nrgb(255,255,0),nrgb(0,0,255),1,8,2)
nl=nl+16*nsl
CmLinea(oPrn,nl,mrgiz,nl,5.5,oPen2) // Línea a lo largo de la factura.
nl=nl+1*nsl
oPrn:CmSay(nl,0,'1234567890123456789012345678901234567890',oFontCond)
nl=nl+2*nsl
oPrn:CmSay(nl,0,'8000113009510',oFontCond)
nl=nl+2*nsl
oPrn:CmSay(nl,0,'8000113009510',oFontCodBarras)
nl=nl+2*nsl
oPrn:CmSay(nl,0,'8000113009510',oFontCodBarras2D)
nl=nl+2*nsl
oPrn:CmSay(nl,0,'8000113009510',oFontCodBarrasQR)
ENDPAGE
ENDPRINT // Apaga la impresora
oPen1:end()
oPen2:end()
return NIL
//Pinta en la impresora una línea en color
function PrnCmSaycolor(oPrn,nRowcm,nColcm,cText,oFont,nColorLetra,nColorFondo, nBkMode,nCmAncho,nAlineamiento)
local nOldColorLetra:= 0 //Texto Blanco
local nOldBkColor := 0 //Texto Fondo
local nOldBkMode := 0 //Back Mode; 1 transparente, 2 opaco.
local ammPageSize := oPrn:GetPhySize()
local oBrush, aDesde:={}, aHasta:={}
default nColorLetra:=nrgb(0,0,0)
default nColorFondo:=nrgb(255,255,255)
default nBkMode := 1 // 1= transparente, 2= opaco
default nCmAncho:= ammPageSize[1]/10 //Por defecto todo el ancho de la página
default nAlineamiento:=0 //LEFT 0, RIGHT 1,CENTER 2
DEFINE BRUSH oBrush COLOR nColorFondo
nOldColorLetra:=SetTextColor( oPrn:hDCOut, nColorLetra ) //Texto Blanco
nOldBkColor :=SetBkColor( oPrn:hDCOut, nColorFondo )
nBkMode :=SetBkMode( oPrn:hDCOut, nBkMode )
aDesde:=oPrn:cmtr2pix(nRowcm,nColcm)
aHasta:=oPrn:cmtr2pix(nRowcm,nColcm+nCmAncho); aHasta[1]=aHasta[1]+oPrn:GetTextHeight( "", oFont )+5
oPrn:FillRect( {aDesde[1],aDesde[2],aHasta[1],aHasta[2]}, oBrush )
do CASE
CASE nAlineamiento = 0 // Izquierda
nColcm=nColcm
CASE nAlineamiento = 1 // Derecha
nColcm=nCmAncho-oPrn:CmtrGetTextWidth( cText, oFont )
CASE nAlineamiento = 2 // Centrado
nColcm=nColcm+(nCmAncho-oPrn:CmtrGetTextWidth( cText, oFont ))/2
endcase
oPrn:CmSay(nRowcm,nColcm, cText, oFont,nCmAncho,nColorLetra,nBkMode,0)
//Devuelve los colores a la configuración anterior a pintar.
SetTextColor( oPrn:hDCOut, nOldColorLetra )
SetBkColor( oPrn:hDCOut, nOldBkColor )
SetBkMode( oPrn:hDCOut, nOldBkMode )
oBrush:end()
return