Ir para conteúdo
  • Cadastre-se

dev botao

Falha ao Imprimir PDF There is no default printer currently selected


Ver Solução Respondido por Willer Figueiredo,
  • Este tópico foi criado há 684 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

tenho um aplicativo rodando como serviço.

Em muitos clientes venho teno problemas ao tentar gerar o danf em pdf,

Cheguei a formatar alguns pcs mas o erro vem se tornando recorrente.

Em todos os casos temos uma impressora padão bem definida.

? Existe algum método de forçar a impressora padrão do windows passando o nome?
? ou alguma outra sugestão?

Link para o comentário
Compartilhar em outros sites

Ao criar ou inicializar o serviço eu faço assim 

uses

  vcl.printers,

-------------------------------



  Printer.PrinterIndex := 0;

  if Printer.PrinterIndex < 0 then
  begin
     //se tiver preenchido o nome ...
     if NomeImpressora <> '' then
     begin
       for I := 0 to Printer.printers.Count-1 do
       if Printer.printers[I] = NomeImpressora then
       begin
         NomeImpressora := Printer.printers[I];
         Printer.PrinterIndex :=I;
         Break;
       end;

     end else
     for I := 0 to Printer.printers.Count-1 do
     begin
       NomeImpressora := Printer.printers[I];
       Printer.PrinterIndex :=I;
       Break;
     end;
  end;


  //Selecione qualquer impressora
  if Printer.PrinterIndex <0 then
  begin
   try
     Printer.PrinterIndex :=0;
   except
   end;
  end;


  //Hipotese de  não informar a impressora , o sistema ira buscar a impressora padrao
  if NomeImpressora='' then
  begin
    if Printer.PrinterIndex >= 0 then
       NomeImpressora:= Printer.Printers[Printer.PrinterIndex];
  end;

 

Link para o comentário
Compartilhar em outros sites

  • Solution

opa consegui resolver da seguinte forma, 
quando a maquina do cliente não conseguir ler a impressora padrão eu forço uma previamente listada no meu ERP

    Try
      Form1.ACBrNFe1.NotasFiscais.ImprimirPDF;
    except
      QrMestre.Close;
      QrMestre.SQL.Clear;
      QrMestre.SQL.Add('Select VENDA_CAMINHO_IMPRESSORA  from conffatura');
      QrMestre.Open;

      Form1.ACBrNFe1.DANFE.Impressora            := QrMestre.FieldByName('VENDA_CAMINHO_IMPRESSORA').AsString;
      Form1.ACBrNFe1.NotasFiscais.ImprimirPDF;
    End;

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 684 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.