Fórum Alinhamento com Write e WriteLN em matriciais ? #346855
01/10/2007
0
Bom dia , pessoal do forum.
Estou com um problema para imprimir em impressora matricial
( DARUMA NAO FISCAL )
OBS: com o componente VDO PRINTER eu consigo normal, mas tem hora q quando mando imprimir sai um monte de caracteres nao a ver. ( axo q eh o driver pq nao tenho como instalar esta impressora ( alguem sabe como ?).
Mas para imprimir com WRITE/WRITELN sae normal tb , mas porem nao consigo fazer o alinhamento da impressora ?
EXEMPLO :
CODIGO PRODUTO VALOR
00001 COMPUTAOR P4 1.200,00
00002 MOUSE PS/2 24,00
GOSTARIA Q SAISSE IGUAL O EXEMPLO ACIMA E ESTA SAINDO DESTA FORMA :
CODIGO PRODUTO VALOR
00001 COMPUTAOR P4 1.200,00
00002 MOUSE PS/2 24,00
ALGUEM TEM ALGUMA SOLUCAO PARA ESTE PROBLEMA ?
ESTOU USANDO DELPHI7/INTERBASE.
Estou com um problema para imprimir em impressora matricial
( DARUMA NAO FISCAL )
OBS: com o componente VDO PRINTER eu consigo normal, mas tem hora q quando mando imprimir sai um monte de caracteres nao a ver. ( axo q eh o driver pq nao tenho como instalar esta impressora ( alguem sabe como ?).
Mas para imprimir com WRITE/WRITELN sae normal tb , mas porem nao consigo fazer o alinhamento da impressora ?
EXEMPLO :
CODIGO PRODUTO VALOR
00001 COMPUTAOR P4 1.200,00
00002 MOUSE PS/2 24,00
GOSTARIA Q SAISSE IGUAL O EXEMPLO ACIMA E ESTA SAINDO DESTA FORMA :
CODIGO PRODUTO VALOR
00001 COMPUTAOR P4 1.200,00
00002 MOUSE PS/2 24,00
ALGUEM TEM ALGUMA SOLUCAO PARA ESTE PROBLEMA ?
ESTOU USANDO DELPHI7/INTERBASE.
Walter Faria
Curtir tópico
+ 0
Responder
Posts
02/10/2007
Ffabiop
Bom dia!
Na matricial o alinhamento se dá por meio de caracteres por exemplo:
Vai adicionando, espaços em branco ou zeros nos campos para alinhar, e acumula a linha toda para mandar de uma vez só para a impressora, nada de mandar cada campo pra impressora, isso acaba com a velocidade de impressão.
Na matricial o alinhamento se dá por meio de caracteres por exemplo:
var linha, aux: String; begin aux := ´1´; //Codigo do Produto while length(aux)<5 do aux := ´0´+aux; Linha := Aux; aux := ´COMPUTADOR P4´; //Descricao do Produto while length(aux)<15 do aux := aux+´ ´; Linha := Linha +Aux; aux := ´1.200,00´; //Valor do Produto while length(aux)<10 do aux := ´ ´+aux; Linha := Linha +Aux; Writeln(´Linha´); //Manda toada a linha de uma vez só para aimpressora end;
Vai adicionando, espaços em branco ou zeros nos campos para alinhar, e acumula a linha toda para mandar de uma vez só para a impressora, nada de mandar cada campo pra impressora, isso acaba com a velocidade de impressão.
Responder
Gostei + 0
02/10/2007
Paulo
Eis aí tres funções: Ajustar Numeros, Textos e evitar caracteres estranhos na matricial, pois quando não há driver de impressão, ela pega o default dela, que é o inglês(sem acentos, cedilhas e etc...)
function
Como usá-las:
Espero tê-lo ajudado, boa sorte.
function
TFrmMenu.AjustaNum(str : string; tam: integer) : string;
begin
while length( str ) tam do
str := ´ ´ + str;
if length(str) > tam then
str := copy(str, 1, tam);
result := str;
end;
function TFrmMenu.AjustaStr( str : string; tam: integer) : string;
begin
while length( str ) tam do
str := str + ´ ´;
if length(str) > tam then
str := copy(str, 1, tam);
result := str;
end;
function TFrmMenu.AnsiToAscii(str : string) : String;
var
i : Integer;
begin
for i := 1 to length(str) do
case str[i] of
´á´ : str[i] := ´a´;
´é´ : str[i] := ´e´;
´í´ : str[i] := ´i´;
´ó´ : str[i] := ´o´;
´ú´ : str[i] := ´u´;
´à´ : str[i] := ´a´;
´è´ : str[i] := ´e´;
´ì´ : str[i] := ´i´;
´ò´ : str[i] := ´o´;
´ù´ : str[i] := ´u´;
´â´ : str[i] := ´a´;
´ê´ : str[i] := ´e´;
´î´ : str[i] := ´i´;
´ô´ : str[i] := ´o´;
´û´ : str[i] := ´u´;
´ä´ : str[i] := ´a´;
´ë´ : str[i] := ´e´;
´ï´ : str[i] := ´i´;
´ö´ : str[i] := ´o´;
´ü´ : str[i] := ´u´;
´ã´ : str[i] := ´a´;
´õ´ : str[i] := ´o´;
´ñ´ : str[i] := ´n´;
´ç´ : str[i] := ´c´;
´Á´ : str[i] := ´A´;
´É´ : str[i] := ´E´;
´Í´ : str[i] := ´I´;
´Ó´ : str[i] := ´O´;
´Ú´ : str[i] := ´U´;
´À´ : str[i] := ´A´;
´È´ : str[i] := ´E´;
´Ì´ : str[i] := ´I´;
´Ò´ : str[i] := ´O´;
´Ù´ : str[i] := ´U´;
´Â´ : str[i] := ´A´;
´Ê´ : str[i] := ´E´;
´Î´ : str[i] := ´I´;
´Ô´ : str[i] := ´O´;
´Û´ : str[i] := ´U´;
´Ä´ : str[i] := ´A´;
´Ë´ : str[i] := ´E´;
´Ï´ : str[i] := ´I´;
´Ö´ : str[i] := ´O´;
´Ü´ : str[i] := ´U´;
´Ã´ : str[i] := ´A´;
´Õ´ : str[i] := ´O´;
´Ñ´ : str[i] := ´N´;
´Ç´ : str[i] := ´C´;
´º´ : str[i] := ´.´;
end;
Result := Str;
end;
Como usá-las:
Write( Texto, AjustaStr(NDoc,8));
Write( Texto, AjustaStr(Emis,12));
Write( Texto, AjustaStr(Venc,12));
//Antes de imprimir ele retira os acentos
Write( Texto, AnsiToAscii(AjustaStr(Desc,12)));
Write( Texto, AjustaNum(ValU,12));
Write( Texto, AjustaNum(Dias,10));
Write( Texto, AjustaNum(ValCor,11));
Writeln( Texto, ´´);
Espero tê-lo ajudado, boa sorte.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)