Função print_pdf demorando e download automatico

Estou fazendo uma automação que no final preciso baixar em pdf a tela do site, para isso estou usando a função print_pdf, que até então funciona, baixa o pdf quase q instantâneo.

O problema q estou encontrando é q demora por volta de 1 minuto para sair dessa função, mesmo baixando o pdf em questão de segundos e esse 1 minuto é precioso para mim.

Andei mexendo no webdriver e percebi que quando eu dava CTRL+P manualmente ele fazia o download do pdf sozinho, ai imaginei que o print_pdf estava esperando aparecer esta tela que sumiu por causa das configurações do webdriver e por isso demorava para sair da função.

Queria saber se é realmente isto e se for tem como tirar esse download automatico passando nos options?

OBS: Tentei usar Keys para fazer o robo dar CTRL+P, que resolveria meus problemas, mas ele não funciona e não aparece a tela de impressão

Consegui tirar o download automatico mas msm assim a função continua demorando a sair

Olá Davi, tudo bem?

Qual navegador esta utilizando? O método print_pdf possuí alguns mecanismos de espera para finalizar a ação de download.

Você pode observar isso acessando diretamente o método do Framework Web da BotCity, aqui:

Com o Firefox ele não possuí validações de tempo de espera, pode ser que execute de forma mais rápida com ele.

Sobre aparecer a tela de print, você tambem pode observar no link do método enviado acima, que existe um parâmetro print_options, onde por padrão é definido para fazer o print em background, então por isso a tela não fica aparente ao usar esse método, mas isso pode ser alterado tranquilamente, passando essa informação para o print_options.

Como sugestão, eu tentaria usar o Firefox para ver se o comportamento muda. E se ainda sim o tempo de espera for muito grande, você pode deixar de usar o método print_pdf, e fazer o print diretamente usando o bot.execute_javascript("window.print();") e fazer a manipulação para salvar o arquivo por conta própria.

O que acha? Veja se funciona, qualquer coisa nos avise, ok?

Funcionou perfeitamente!!! Comecei testando o código para executar direto no javascript que vc mandou e foi perfeito.

Obrigado pela ajuda e pela rápida resposta!

1 Like