Ir para conteúdo
  • Cadastre-se

dev botao

Gerar PDF DANFE, FortesReport, via IIS


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

Recommended Posts

Postado

Bom dia, após tentar gerar o DANFE via servidor IIS, usando uma DLL recebemos a seguinte mensagem:

There is no default printer currently selected

No tópico:

https://www.projetoacbr.com.br/forum/topic/52337-gerar-pdf-nfcenfe-danfe-aplica%C3%A7%C3%A3o-isapi-com-fortes-report/

foi proposto usar o NumCopias := 0, mas mesmo assim o erro continuava.

Corrigimos o problema alterando a unit ACBrDFeReportFortes:

class procedure TDFeReportFortes.AjustarReport(FReport: TRLReport; AConfig: TACBrDFeReport);
...
if RLPrinter.SupportsDuplex Then
	RLPrinter.Duplex := false;
...

para:

class procedure TDFeReportFortes.AjustarReport(FReport: TRLReport; AConfig: TACBrDFeReport);
...
if (AConfig.NumCopias > 0) and RLPrinter.SupportsDuplex Then
	RLPrinter.Duplex := false;
...

 

Postado (editado)

Não, DANFE da NFSe.
Nós não usamos ACBrLib, usamos uma DLL feita apenas para para gerar o PDF da nota. E essa DLL é chamada servidor IIS.
Vi que em outros tópicos teve gente com o mesmo problema. 

Editado por edv4ld0
Postado (editado)

É justamente do componente que estamos utilizando:

DANFSE.ImprimirDANFSePDF(stream)

Só que em:

class procedure TDFeReportFortes.AjustarReport(FReport: TRLReport; AConfig: TACBrDFeReport);
begin
  FReport.ShowProgress := AConfig.MostraStatus;
  FReport.PrintDialog := AConfig.MostraSetup and (not AConfig.MostraPreview);

  if NaoEstaVazio(AConfig.Impressora) then
    if RLPrinter.PrinterName <> AConfig.Impressora then
      RLPrinter.PrinterName := AConfig.Impressora;

  if RLPrinter.SupportsDuplex Then
     RLPrinter.Duplex := false;

  if (AConfig.NumCopias > 0) and (RLPrinter.Copies <> AConfig.NumCopias) then
    RLPrinter.Copies := AConfig.NumCopias;
end;

a linha, retorna o erro.

if RLPrinter.SupportsDuplex Then

Se você olhar abaixo já é verificado NumCopia > 0, proposto no tópico mencionado, para não setar o RLPrinter.Copies que dava o mesmo erro, só adicionamos para também não verificar o SupportsDuplex:

  if (AConfig.NumCopias > 0) and RLPrinter.SupportsDuplex Then
     RLPrinter.Duplex := false;

Caso queira fazer um teste, basta excluir todas as impressoras do windows e chamar DANFSE.ImprimirDANFSePDF, vai retornar que não tem impressora padrão, altere a linha indica e o PDF é gerado normalmente.

Editado por edv4ld0
  • Curtir 1
  • 2 semanas depois ...
  • Este tópico foi criado há 1173 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...