Fórum Printer.Canvas #235688
02/06/2004
0
Pessoal, estou tendo um problema com o Printer.Canvas.
Alinho uma linha utilizando a resolução da impressora tudo certinho, a primeira impressao sai correta, quando eu clico no botao imprimir novamente, sai desalinhado em relação a 1ª e permanece com esse alinhamento diferente até finalizar o programa.
Segue a parte de meu programa que realiza essa função.
[i:fb6e0a68a5]
procedure TForm1.Button1Click(Sender: TObject);
var i,j:byte;
linha,tamanho,altura,marg1,marg2: integer;
begin
PrintDialog1.Execute;
i:=0;
j:=0;
Linha:=101;
tamanho:=Printer.Canvas.TextWidth(´A´);
altura:=Printer.Canvas.TextHeight(´A´)+5;
marg1:=150;
marg2:=110+(tamanho*45);
with Printer do
begin
Orientation:=poPortrait;
BeginDoc;
with canvas do
begin
Font.Size:=10;
Font.Name:=´Arial´;
Pen.Width:=5;
Brush.Style:=bsClear;
MoveTo(0,0);
TextOut(marg1,linha+(altura*15),StringGrid1.Cells[0,1]);
end;
EndDoc;
end;
end;
[/i:fb6e0a68a5]
Se acaso alguem puder me ajudar serei grato.
valew :shock:
Alinho uma linha utilizando a resolução da impressora tudo certinho, a primeira impressao sai correta, quando eu clico no botao imprimir novamente, sai desalinhado em relação a 1ª e permanece com esse alinhamento diferente até finalizar o programa.
Segue a parte de meu programa que realiza essa função.
[i:fb6e0a68a5]
procedure TForm1.Button1Click(Sender: TObject);
var i,j:byte;
linha,tamanho,altura,marg1,marg2: integer;
begin
PrintDialog1.Execute;
i:=0;
j:=0;
Linha:=101;
tamanho:=Printer.Canvas.TextWidth(´A´);
altura:=Printer.Canvas.TextHeight(´A´)+5;
marg1:=150;
marg2:=110+(tamanho*45);
with Printer do
begin
Orientation:=poPortrait;
BeginDoc;
with canvas do
begin
Font.Size:=10;
Font.Name:=´Arial´;
Pen.Width:=5;
Brush.Style:=bsClear;
MoveTo(0,0);
TextOut(marg1,linha+(altura*15),StringGrid1.Cells[0,1]);
end;
EndDoc;
end;
end;
[/i:fb6e0a68a5]
Se acaso alguem puder me ajudar serei grato.
valew :shock:
Una
Curtir tópico
+ 0
Responder
Posts
02/06/2004
Vinicius2k
Una,
À primeira vista me parece que o erro desta função está em medir os X e Y antes da definição dos fontes...
Passe as duas linhas em as variáveis altura e largura recebem os valores para após a definição do fonte...
Caso não solucione, poste novamente...
T+
À primeira vista me parece que o erro desta função está em medir os X e Y antes da definição dos fontes...
Passe as duas linhas em as variáveis altura e largura recebem os valores para após a definição do fonte...
... Font.Size:=10; Font.Name:=´Arial´; tamanho:=Printer.Canvas.TextWidth(´A´); altura:=Printer.Canvas.TextHeight(´A´)+5; ...
Caso não solucione, poste novamente...
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)