Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Boa tarde pessoal.

Estou tentando implementar a impressão de PDF GNRe em meu sistema:

        public override async Task<FileResponse> GerarPdfAsync(Guid id)
        {
            try
            {
                var gnre = await _gnreService.GetByIdAsync(id.ToString());

                if (gnre == null)
                    throw new Exception("GNRE não encontrado para o ID informado.");

                //await ConfigurarComponente(gnre.EmpresaId!.Value, gnre.ContaId!.Value, false);
                //Config Geral
                DfeLib.Config.ExibirErroSchema = true;// ckbExibirErroSchema.Checked;
                DfeLib.Config.FormatoAlerta = "TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.";
                DfeLib.Config.FormaEmissao = TipoEmissao.teNormal;
                DfeLib.Config.VersaoDF = VersaoGNRe.ve100;
                DfeLib.Config.RetirarAcentos = true;
                DfeLib.Config.SalvarWS = true;
                DfeLib.Config.PathSalvar = "";
                DfeLib.Config.PathSchemas = "";

                //Config Webservice
                DfeLib.Config.DFe.UF = "";
                DfeLib.Config.SSLType = SSLType.LT_TLSv1_2;
                DfeLib.Config.Timeout = 5000;
                DfeLib.Config.Ambiente = TipoAmbiente.taHomologacao;
                DfeLib.Config.Visualizar = true;
                DfeLib.Config.SalvarWS = false;
                DfeLib.Config.AjustaAguardaConsultaRet = true;
                DfeLib.Config.AguardarConsultaRet = 0;
                DfeLib.Config.Tentativas = 0;
                DfeLib.Config.IntervaloTentativas = 0;
                DfeLib.Config.Proxy.Servidor = "";
                DfeLib.Config.Proxy.Porta = "";
                DfeLib.Config.Proxy.Usuario = "";
                DfeLib.Config.Proxy.Senha = "";

                //Config Certificado
                DfeLib.Config.DFe.SSLCryptLib = SSLCryptLib.cryNone;
                DfeLib.Config.DFe.SSLHttpLib = SSLHttpLib.httpNone;
                DfeLib.Config.DFe.SSLXmlSignLib = SSLXmlSignLib.xsNone;
                DfeLib.Config.DFe.ArquivoPFX = "";
                DfeLib.Config.DFe.Senha = "";
                DfeLib.Config.DFe.NumeroSerie = "";

                //Config Arquivos
                DfeLib.Config.SalvarGer = true;
                DfeLib.Config.SepararPorMes = false;
                DfeLib.Config.AdicionarLiteral = false;
                DfeLib.Config.EmissaoPathGNRe = false;
                DfeLib.Config.SepararPorCNPJ = false;
                DfeLib.Config.SepararPorModelo = false;
                DfeLib.Config.PathGNRe = "";

                //Config Email
                DfeLib.Config.Email.Nome = "";
                DfeLib.Config.Email.Conta = "";
                DfeLib.Config.Email.Usuario = "";
                DfeLib.Config.Email.Senha = "";
                DfeLib.Config.Email.Servidor = "";
                DfeLib.Config.Email.Porta = "";
                DfeLib.Config.Email.SSL = false;
                DfeLib.Config.Email.TLS = false;
                DfeLib.ConfigGravar();

                var path = Path.GetTempPath();

                var ini = gnre.ToString();

                DfeLib.Config.Guia.PathPDF = path;
                DfeLib.LimparListaGuiaRetorno();
                DfeLib.CarregarINI(ini);
                var xml = DfeLib.ObterXml(0);
                //DfeLib.CarregarXML(xml);
                DfeLib.CarregarGuiaRetorno(xml);

                //DfeLib.LimparLista();

                DfeLib.ImprimirPDF();

                var arquivoPdf = Directory
                    .GetFiles(path, "*.pdf")
                    .OrderByDescending(File.GetCreationTime)
                    .FirstOrDefault();

                if (arquivoPdf == null)
                    throw new FileNotFoundException("Nenhum arquivo PDF foi gerado pela ACBrLib.");

                var nomeArquivo = Path.GetFileName(arquivoPdf);

                var fileStream = new FileStream(arquivoPdf, FileMode.Open, FileAccess.Read, FileShare.Read);

                return new FileResponse(MIME.PDF, nomeArquivo, path, fileStream);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gerar PDF GNRE", ex);
            }
        }

Algumas observações:

  • Não estou com o certificado cadastrado.
  • Já estou com uma impressora configurada como padrão no meu computador.
  • Coloquei algumas configurações (inicio do metodo) na tentativa de sanar o erro.

Logo após, quando ele chega no método DfeLib.ImprimirPDF(); imprime o seguinte erro: RLGNRe: Erro durante a preparação do relatório EAccessViolation(Access violation).

E o PDF gerado está corrompido.

image.png.46efd3458fde3783d2fbfa37fba27b68.png

 

Postado (editado)
8 minutos atrás, Juliomar Marchetti disse:

Tem tópicos que fala dessa mesma situação mas para outros componentes

senão me engano era a versão do fortes report que deve ser atualizado e reinstalar o ACBr marcando remover tudo antes

Oi Juliomar, obrigada por responder. Eu baixei o repositório, dependências e etc não faz nem 15 dias, essa implementação é bem recente, mesmo assim ainda devo considerar esse cenário?

Editado por beatriz-n
duplicado
Postado
16 minutos atrás, Juliomar Marchetti disse:

Bom vou mover

pois tu está a falar da LIB já notei enão do componente

 

Atualizei a versão, gerei a DLL pelo Lazarus e compilei Lib, mas ainda continua o erro.

  • Moderadores
Postado
4 horas atrás, beatriz-n disse:

Atualizei a versão, gerei a DLL pelo Lazarus e compilei Lib, mas ainda continua o erro.

não há relatos da compilada. é algo em sua IDE e compilação que está gerando isso.

se pegar a demo e mandar imprimir não deve ocasionar

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
Em 13/06/2025 at 22:23, Juliomar Marchetti disse:

não há relatos da compilada. é algo em sua IDE e compilação que está gerando isso.

se pegar a demo e mandar imprimir não deve ocasionar

Usando a Lib compilada demo do site no projeto exemplo do C#, esta dando erro código -3 ao carregar a lib.

Postado
Em 13/06/2025 at 22:23, Juliomar Marchetti disse:

não há relatos da compilada. é algo em sua IDE e compilação que está gerando isso.

se pegar a demo e mandar imprimir não deve ocasionar

Só para exemplificar, a imagem a seguir demonstra o erro e isso acontece quando vou atribuir qualquer valor as propriedades, devolve o erro -3 que havia citado anteriormente

image.thumb.png.8392476e0e4b939c76b1660bd76931cf.png

Postado (editado)
6 minutos atrás, Juliomar Marchetti disse:

Quer dizer que tem algo de errado no arquivo

mas não tem o erro relatado aqui 

Então esse arquivo é o que eu peguei do exemplo C# mesmo e o exemplo está dando o mesmo erro.
Estou usando essas DLLs:

image.png.f4a2a5a5792c7ae00d6de18ccaa73916.png

Editado por beatriz-n

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.