Olá, Marcus!
Entendo a sua situação. No entanto, devido a restrições de segurança dos navegadores, não é possível fechar uma aba ou janela automaticamente após o download ser iniciado. Isso ocorre porque os navegadores modernos não permitem que scripts de páginas da web fechem janelas que não foram abertas por eles, como uma medida de segurança para evitar abusos.
No entanto, há uma maneira de contornar isso, mas não é perfeita. Você pode tentar usar a função window.close()
do JavaScript para fechar a aba. No entanto, isso só funcionará se a aba foi aberta pelo mesmo script que está tentando fechá-la. Aqui está um exemplo:
// Abrir a nova aba
let newTab = window.open('url_para_download');
// Fechar a nova aba
newTab.close();
Lembre-se que essa solução pode não funcionar em todos os navegadores, pois depende de como eles lidam com as restrições de segurança.
Outra abordagem seria não abrir uma nova aba para o download, mas sim fazer o download diretamente na mesma aba. Isso pode ser feito usando a biblioteca jsPDF
se você estiver gerando o PDF no lado do cliente. Aqui está um exemplo:
import jsPDF from 'jspdf';
// Crie um novo documento PDF
let doc = new jsPDF();
// Adicione algum texto
doc.text('Hello world!', 10, 10);
// Inicie o download do PDF
doc.save('a4.pdf');
Espero ter ajudado e bons estudos!