ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[Resolvido]Como imprimir em outra impressora <> Padrão?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
junior103
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Julho de 2015
Mensagens: 204

MensagemEnviada: Seg Ago 14, 2017 8:48 am    Assunto: [Resolvido]Como imprimir em outra impressora <> Padrão? Responder com Citaçã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
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Seg Ago 14, 2017 2:08 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
junior103
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Julho de 2015
Mensagens: 204

MensagemEnviada: Seg Ago 14, 2017 2:35 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Ago 16, 2017 11:27 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
junior103
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 1 de Julho de 2015
Mensagens: 204

MensagemEnviada: Qua Ago 16, 2017 1:53 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB