Pesquisar na Comunidade
Showing results for tags 'imprimir texto timage'.
Encontrado 1 registro
-
Imprimir em impressora o Texto escrito em Timage
um tópico no fórum postou Marcelo Bill Object Pascal - Delphi & Lazarus
Boa noite pessoal Com o uso do acbrPosPrinter, pensei seriamente em matar o uso do RDPrint, pois o RDPrint 4 não consegue utilizar os recursos dessas impressoras térmicas. A única dificuldade foi a falta do preview no acbrPosprinter e não imprimir em impressora matricial, além de que quando uso a função ImprimeLinha ele só funciona com o modelo Epson tanto para Bematech, Daruma ou a propria epson Termica, mas, brincando de programar, acabei criando um preview próprio, pelo menos pra resolver a questão de visualizar a impressão exceto a impressão do CF-e, pois, meus clientes usam muito essas termicas devido ao baixo custo de manutenção. Estava eu brincando com um Timage e fiz uso de image.canvas.textout, textwidth, TextHeight e praticamente quase gerado um gerador de relatório semelhante ao Rave, QR Forts etc. Minha única dificuldade está sendo em imprimir o que escrevi usando TextOut para uma impressora qualquer, jato, laser, etc já tentei pelo Printer.Canvas.Draw(..... ele até imprime mas o tamanho fica miudinho Como fiz: Criei um Form com ScrollBox e 1 Timage Depois fiz um unit com a função Imprime e nela coloquei todos os atributos do texto tais como, cor, tamanho,fonte, stilo, etc; ************************************************** procedure TF_PreviewNarezzi.Imprima(aLinha,aColuna,aSize:Integer;aStyle:TFontStyles;aTexto:string;aFonte:String='Courier New';aCor:TColor=clBlack); Var TamanhoCaracter,iCol:Integer; begin With Image do begin Canvas.Font.Name :=aFonte; Canvas.Font.Size :=aSize; Canvas.Font.Color :=aCor; Canvas.Font.Style :=aStyle; if aColuna<0 then begin iCol:=Round((Width-Canvas.TextWidth(aTexto))/2); Canvas.TextOut(iCol,aLinha,aTexto); end else begin Canvas.TextOut(aColuna,aLinha,aTexto); end; end; end; ********************************************* procedure TF_P.Button1Click(Sender: TObject); Var L,C:Integer; marD,marE:integer; Rect: TRect; Begin if F_PreviewNarezzi=Nil then F_PreviewNarezzi:=TF_PreviewNarezzi.Create(Nil); With F_PreviewNarezzi do Begin With Image do begin Height:=1122; Width :=793; MarginE:=20; MarginD:=Width-20; Canvas.Font.Name:='Courier New'; Canvas.Font.Size:=6; Canvas.Font.Style:=[]; Canvas.Font.Color:=clBlack; L:=1*Canvas.TextHeight('A'); C:=marginE; Imprima(L,-1,24,[fsBold,fsItalic],'Narezzi Consultoria','Courier New',clGreen); L:=(1*Canvas.TextHeight('A')); Linha(L,C,L,marD,1,psDash,clGreen); L:=Round(1.1*Canvas.TextHeight('A')); Imprima(L,C,10,[],'Relatório de Vendas'); Imprima(L,marginD-56,10,[],'Período'); L:=L+16; Linha(L,C,L,marginD,1,psSolid,clRed); L:=L+3; Imprima(L,marginD-78,10,[],FormatDateTime('dd/mm/yyyy',Date)); L:=L+(3*16); Imprima(L,-1,36,[fsBold,fsItalic,fsUnderline],'Caio Narezzi','Times New Roman',clBlue); Printer.BeginDoc; Printer.Canvas.Draw(0,0,image.Picture.Graphic); Printer.EndDoc; end; end; F_PreviewNarezzi.ShowModal; end; ******************************** Não consigo imprimir esse conteudo em qualquer impressora de forma que saia nas mesmas dimensoes do A4 cujo foi criado Timage. Se alguem puder dar alguma dica, ficarei feliz, pois é mais um conhecimento que me agrega. Obrigado