Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
junior103 Aprendiz

Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Seg Ago 14, 2017 8:48 am Assunto: [Resolvido]Como imprimir em outra impressora <> Padrão? |
|
|
Bom dia. Como faço para mandar a impressão para uma impressora que não a padrão do Windows? Em VCL eu tenho o fonte mas em FMX não estou conseguindo.
Exemplo em vcl
Código: | Var I:Integer;
begin
Printer.PrinterIndex := -1;
For I := 0 to Printer.printers.Count-1 do begin
If LowerCase(Printer.Printers[i]) = Lowercase(PrinterName) then begin
//Altera a classe printer padrão
if ( Printer.PrinterIndex <> i ) then begin
Printer.PrinterIndex := i;
end;
exit;
end;
End;
End; |
Quero fazer o mesmo processo mas em FMX(Firemonkey).
Fico no Aguardo.
Obrigado.
Editado pela última vez por junior103 em Qua Ago 16, 2017 1:54 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Seg Ago 14, 2017 2:08 pm Assunto: |
|
|
Já pensou em listar a impressora e deixar o usuário decidir.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
junior103 Aprendiz

Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Seg Ago 14, 2017 2:35 pm Assunto: |
|
|
johnny-walker escreveu: | Já pensou em listar a impressora e deixar o usuário decidir.
bye |
Boa tarde. Não seria essa ideia. A ideia é o seguinte. O ambiente pode possui varias impressoras por exemplo(IMP_COZINHA, IMP_SUCO e etc...) . Preciso que faça o mesmo procedimento só que em FMX. Segue o fonte em VCL.
Código: |
Procedure SetPrinterName(PrinterName: String);
Var I:Integer;
begin
Printer.PrinterIndex := -1;
For I := 0 to Printer.printers.Count-1 do begin
If LowerCase(Printer.Printers[i]) = Lowercase(PrinterName) then begin
//Altera a classe printer padrão
if ( Printer.PrinterIndex <> i ) then begin
Printer.PrinterIndex := i;
end;
exit;
end;
End;
End; |
|
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Ago 16, 2017 11:27 am Assunto: |
|
|
Altere sua Procedure para:
Código: | Procedure SetPrinterName(PrinterName: String);
Var
I: Integer;
begin
For I := 0 to Printer.Count - 1 do
If LowerCase(Printer.printers[I].Device) = LowerCase(PrinterName) then
begin
// Altera a classe printer padrão
if (Printer.ActivePrinter <> Printer.printers[I]) then
Printer.ActivePrinter := Printer.printers[I];
exit;
end;
End; |
Exemplo de uso:
Código: | ShowMessage(Printer.ActivePrinter.Device); // Impressora ativa antes da mudança
SetPrinterName('IMP_COZINHA'); // Alterando a impressora para IMP_COZINHA
ShowMessage(Printer.ActivePrinter.Device); // Impressora ativa depois da mudança |
_________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
Voltar ao Topo |
|
 |
junior103 Aprendiz

Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Qua Ago 16, 2017 1:53 pm Assunto: |
|
|
natanbh1 escreveu: | Altere sua Procedure para:
Código: | Procedure SetPrinterName(PrinterName: String);
Var
I: Integer;
begin
For I := 0 to Printer.Count - 1 do
If LowerCase(Printer.printers[I].Device) = LowerCase(PrinterName) then
begin
// Altera a classe printer padrão
if (Printer.ActivePrinter <> Printer.printers[I]) then
Printer.ActivePrinter := Printer.printers[I];
exit;
end;
End; |
Exemplo de uso:
Código: | ShowMessage(Printer.ActivePrinter.Device); // Impressora ativa antes da mudança
SetPrinterName('IMP_COZINHA'); // Alterando a impressora para IMP_COZINHA
ShowMessage(Printer.ActivePrinter.Device); // Impressora ativa depois da mudança |
|
Muito obrigado meu Amigo, é isso mesmo que eu precisava. |
|
Voltar ao Topo |
|
 |
|