Imprimir imagem .jpg com printer.canvas
ola pessoal,
estou tentando imprimir uma imagem usando printer em um impressora termica e ela imprime imagem pq pelo quickreport dá certo...ja tentei o seguinte:
mas nao deu certo, ele envia para a impressora mas a folha sai em branco....algum tem uma luz...obrigado.
estou tentando imprimir uma imagem usando printer em um impressora termica e ela imprime imagem pq pelo quickreport dá certo...ja tentei o seguinte:
var img:TImage; path:string; begin path:=ExtractFilePath(application.ExeName); img:=TImage.Create(self); img.Picture.LoadFromFile(path+´tc.jpg´); Printer.BeginDoc; with Printer.Canvas do begin StretchDraw(Rect(0,0,0,0),img.Picture.Graphic); end; Printer.EndDoc; end;
mas nao deu certo, ele envia para a impressora mas a folha sai em branco....algum tem uma luz...obrigado.
Tap_pedroso
Curtidas 0
Respostas
Rodc
27/03/2008
Tente fazer um Lock no canvas, depois de desenhar faça um Unlock.
GOSTEI 0
Edilcimar
27/03/2008
você tem que especificar a posição do trect, você está dizendo que ele tem tamanho zero StretchDraw(Rect(0,0,0,0),img.Picture.Graphic), os números para impressão são os seguintes: esquerda, topo, direita e inferior
GOSTEI 0
Tap_pedroso
27/03/2008
o tamanho que eu coloco no RECT é em pixels? pq eu coloquei
StretchDraw(Rect(10,10,100,100),img.Picture.Graphic);
e sai um tamanha ...depois
StretchDraw(Rect(10,10,400,400),img.Picture.Graphic); saiu outro tamnho
e depois StretchDraw(Rect(10,10,800,800),img.Picture.Graphic);
maior ainda...no ultimo saiu maior q o tamanho normal da imagem...como funciona esse rect?
StretchDraw(Rect(10,10,100,100),img.Picture.Graphic);
e sai um tamanha ...depois
StretchDraw(Rect(10,10,400,400),img.Picture.Graphic); saiu outro tamnho
e depois StretchDraw(Rect(10,10,800,800),img.Picture.Graphic);
maior ainda...no ultimo saiu maior q o tamanho normal da imagem...como funciona esse rect?
GOSTEI 0
Rodc
27/03/2008
Se você quer o tamanho real, utilize a função Canvas.Draw(). Esta não precisa passar o tamanho da imagem.
GOSTEI 0
Edilcimar
27/03/2008
o valor da cada número varia de acordo com a resolução da impressora, se a resolução estiver 100x100 significa 100 pontos por polegada(pixels), então se voce colocar o trect(0,0,100,100) significa que será colocado na posição colunaesquerda=0, linhasuperior=0, colundireita=100, linhainferior=100, mas como 100 é igual a 1 polegada, você terá um quadrado de 1 polegada, porém se a resolução da impressora estiver 200x200, significa que com as mesmas medidas tudo será impresso em apenas 1/2 polegada
GOSTEI 0
Tap_pedroso
27/03/2008
blz, consegui...muito obrigado turma. abraços.
GOSTEI 0