 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
utlrasen.tato Aprendiz

Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Seg Mar 03, 2014 8:26 am Assunto: imprimir direto via usb |
|
|
bom dia amigos
estou precisando implementar no meu projeto a impressao direto via usb, devido alguns clientes nao conseguirem comprar impressoras serial ou paralela e só usb, gostaria que alguem pudesse me enviar um passa-a-passo de como colocar isso no meu projeto ou se alguem tiver ai uma rotina pronta de pudesse me arrumar para que eu possa finalizar esta parte
atualmente estou com impressoras elgin e epson via usb elas estao instaladas via usb no cliente mas nao consigo dispara da minha rotina de serial ou paralela |
|
Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Seg Mar 03, 2014 8:42 am Assunto: |
|
|
E qual é sua rotina amigo ??? o problema não esta na impressão, mas o modo que vc faz que não é compatível... |
|
Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
|
Voltar ao Topo |
|
 |
utlrasen.tato Aprendiz

Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Seg Mar 03, 2014 6:26 pm Assunto: imprimir via usb |
|
|
boa tarde amigo
estou precisando de imprimir direto na usb e fazer com que minha rotina busque a impressora usb padrao do windows hoje eu utilizo minha rotina assim:
Código: | Dm_local.Ds_Config.open;
impressora:=Dm_local.Ds_Config.fieldbyname('PORTACOMUNICAO').AsString ;
AssignFile(F,impressora);
Rewrite(F);
Writeln(F,'');
Writeln(F,texto);
{ Writeln(F,'N. '+frm_cx.bt_cupom.caption+ ' '+formatdatetime('DD/MM/YY',Date)+' '+formatDatetime('HH:MM:SS',Time));}
Writeln(F,'N. '+frm_cx.bt_cupom.caption+ ' '+formatdatetime('DD/MM/YY',Date));
Writeln(F,'----------------------------------------');
close(f); |
|
|
Voltar ao Topo |
|
 |
utlrasen.tato Aprendiz

Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Seg Mar 03, 2014 6:32 pm Assunto: imprimir via usb |
|
|
Ghost_Rider escreveu: | E qual é sua rotina amigo ??? o problema não esta na impressão, mas o modo que vc faz que não é compatível... |
estou precisando de imprimir direto na usb e fazer com que minha rotina busque a impressora usb padrao do windows hoje eu utilizo minha rotina assim:
Código: | Dm_local.Ds_Config.open;
impressora:=Dm_local.Ds_Config.fieldbyname('PORTACOMUNICAO').AsString ;
AssignFile(F,impressora);
Rewrite(F);
Writeln(F,'');
Writeln(F,texto);
{ Writeln(F,'N. '+frm_cx.bt_cupom.caption+ ' '+formatdatetime('DD/MM/YY',Date)+' '+formatDatetime('HH:MM:SS',Time));}
Writeln(F,'N. '+frm_cx.bt_cupom.caption+ ' '+formatdatetime('DD/MM/YY',Date));
Writeln(F,'----------------------------------------');
close(f);
|
eu ate achei alguem coisa na net mas esta dando erro é assim:
Código: | procedure TMeuPrint.AtualizaImp;
const
what: array[0..1] of string = (\'True\',\'False\');
var
Device, FName, Port : array[0..100] of Char;
DevMode : THandle;
begin
Printer.GetPrinter(Device, FName, Port, DevMode);
ImprDefault := StrPas(Port);
end;
|
e esta dando erro na linha PRINTER.GETPRINTER, lembrando que eu nao consegui fazer uma procedure e sim uma funcao sera que esta dando erro por isso!
me ajude, pois o cliente esta bravo com o atraso desta rotina |
|
Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Seg Mar 03, 2014 8:54 pm Assunto: |
|
|
segue como pode fazer
Código: |
uses printers; // necessario
{variáveis globais}
var
aPrinter: tprinter; // necessario
x, y: integer; // necessario
procedure ExibirImpressoras(list: tstrings); // exibe lista de imprassora do windows
begin
list.Text := Printer.printers.Text;
end;
procedure SelecionarImpresora(Nome: String); // seleciona uma impressora pelo nome
var
Device, Driver, Port: array [0 .. 255] of char;
hDMode: THandle;
i: integer;
tmpnome: string;
begin
Printer.PrinterIndex := -1;
if aPrinter = nil then
aPrinter := tprinter.Create;
for i := 0 to (Printer.printers.Count - 1) do
begin
tmpnome := Printer.printers[i];
if tmpnome = Nome then
begin
aPrinter.PrinterIndex := i;
aPrinter.GetPrinter(Device, Driver, Port, hDMode);
end;
end;
end;
procedure IniciarImpresao(x, y: integer; impressora: string); // inicia a impresora
begin
SelecionarImpresora(impressora);
Printer.BeginDoc;
end;
procedure ImprimirLinha(linha: string); // imprime uma unica linha
begin
inc(y, Printer.Canvas.TextHeight('W'));
Printer.Canvas.TextOut(x, y, linha);
end;
procedure FinalizarImpresao; // finaliza a impressão
begin
Printer.EndDoc;
end;
|
dos exemplo de uso
Código: |
procedure TForm1.Button1Click(Sender: TObject);
begin
IniciarImpresao(10, 10, 'HP PSC 1500 series');
ImprimirLinha('outros texto');
ImprimirLinha('N. ' + inttostr(3333) + ' ' + formatdatetime('DD/MM/YY', Date));
ImprimirLinha('----------------------------------------');
FinalizarImpresao;
end;
|
// HP PSC 1500 series é uma impressora usb 10 é margem esquerda, e 10 é margem superior.
veja se isso te ajuda. |
|
Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9099 Localização: Sinop-MT
|
Enviada: Qui Mar 06, 2014 9:45 am Assunto: |
|
|
qual o tipo da impressora? eu uso o Fastreport, e da pra fazer a impressao direta na impressora Default, sem preview. funciona em qq impressora _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
Voltar ao Topo |
|
 |
utlrasen.tato Aprendiz

Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Dom Mar 09, 2014 11:04 pm Assunto: imprimir via usb |
|
|
joemil escreveu: | qual o tipo da impressora? eu uso o Fastreport, e da pra fazer a impressao direta na impressora Default, sem preview. funciona em qq impressora |
eu quero imprimir em qualquer impressora de cupom nao fiscal ou fiscal de 40 colunas direto via usb, ou seja, eu instalaria a impressora e entao minha rotina pegaria a impressora padrao do windows e dispararia pra ela, tem como! |
|
Voltar ao Topo |
|
 |
utlrasen.tato Aprendiz

Registrado: Quarta-Feira, 11 de Janeiro de 2012 Mensagens: 112 Localização: jundiai-sp
|
Enviada: Dom Mar 09, 2014 11:06 pm Assunto: imprimir via usb |
|
|
strak2012 escreveu: | segue como pode fazer
Código: |
uses printers; // necessario
{variáveis globais}
var
aPrinter: tprinter; // necessario
x, y: integer; // necessario
procedure ExibirImpressoras(list: tstrings); // exibe lista de imprassora do windows
begin
list.Text := Printer.printers.Text;
end;
procedure SelecionarImpresora(Nome: String); // seleciona uma impressora pelo nome
var
Device, Driver, Port: array [0 .. 255] of char;
hDMode: THandle;
i: integer;
tmpnome: string;
begin
Printer.PrinterIndex := -1;
if aPrinter = nil then
aPrinter := tprinter.Create;
for i := 0 to (Printer.printers.Count - 1) do
begin
tmpnome := Printer.printers[i];
if tmpnome = Nome then
begin
aPrinter.PrinterIndex := i;
aPrinter.GetPrinter(Device, Driver, Port, hDMode);
end;
end;
end;
procedure IniciarImpresao(x, y: integer; impressora: string); // inicia a impresora
begin
SelecionarImpresora(impressora);
Printer.BeginDoc;
end;
procedure ImprimirLinha(linha: string); // imprime uma unica linha
begin
inc(y, Printer.Canvas.TextHeight('W'));
Printer.Canvas.TextOut(x, y, linha);
end;
procedure FinalizarImpresao; // finaliza a impressão
begin
Printer.EndDoc;
end;
|
dos exemplo de uso
Código: |
procedure TForm1.Button1Click(Sender: TObject);
begin
IniciarImpresao(10, 10, 'HP PSC 1500 series');
ImprimirLinha('outros texto');
ImprimirLinha('N. ' + inttostr(3333) + ' ' + formatdatetime('DD/MM/YY', Date));
ImprimirLinha('----------------------------------------');
FinalizarImpresao;
end;
|
// HP PSC 1500 series é uma impressora usb 10 é margem esquerda, e 10 é margem superior.
veja se isso te ajuda. |
amigo voce nao tem ai uma mais facil de enviar direto para impressora via usb sem ter que definir tamanhos e coisas mais ! |
|
Voltar ao Topo |
|
 |
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Qua Mar 12, 2014 11:09 pm Assunto: |
|
|
Nao entedi a questao, contudo e possivel imprimir direto para usb desde que ela tenha um drive que realize a simulacao de uma porta COM serial. Tive certa vez um dispositivo usb que quando instalado o drive do mesmo o windows ganhava uma porta COM3 virtual, era atraves desta porta COM3 que eu me comunicava com este tal dispositivo. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|