abrir dompdf em nova guia dados coletados de determinada página

Eu sei que existem pelo menos outras duas perguntas semelhantes, mas não me ajudam.

Eu tenho uma checkbox de texto com tinymce onde o usuário escreve seu texto. Depois, há um botão “PDF” que deve criar o pdf e abri-lo na nova guia. O conteúdo do pdf é o conteúdo em tinymce.

Quando o usuário clicar no botão, o formulário é submetido à ação index.php. Então index.php reúne informações de $ _POST variável e cria pdf.

Não consigo abri-lo na nova guia como um link normal. Eu tentei de maneiras diferentes.

1) Posso abrir o PDF na mesma guia, mas isso não é o que eu preciso. Esta linha abre meu pdf na mesma guia:

$dompdf->stream('document.pdf',array('Attachment'=>0)); 

2) Posso abri-lo na nova janela, mas o navegador avisa que isso é pop-up. O cliente não quer isso. Também outro problema com isso é que o pdf é armazenado no servidor. Eu não quero isso (o aviso pop-up é mais importante). Aqui está o meu código:

 $output = $dompdf->output(); file_put_contents('document.pdf', $output); //save pdf on server //opens generated pdf in new window, but this creates warning for popup echo ' window.open("http://modeles-de-lettres.org/test/saved_pdf.pdf", "_blank"); '; 

Eu li esses:

1) Abra PDF em uma nova guia usando dompdf

Isso sugere: “Até a abertura em uma nova guia. Isso depende de como você está gerando o PDF. Mas a maneira mais simples de fornecer um link com um atributo de destino”. Eu acho que isso significa que eu tenho

 <a href="https://stackoverflow.com/questions/17458553/open-dompdf-in-new-tab-taken-data-from-given-page/my.pdf" target="blank" 

ou

 <a href="https://stackoverflow.com/questions/17458553/open-dompdf-in-new-tab-taken-data-from-given-page/my.php" target="blank" 

Mas isso não funciona para mim, porque eu deveria POSTAR meu formulário para obter dados do pdf.

2) gerar o pdf no newtab no dompdf

Isso é algo que eu implementei antes (eu fiz isso sem sessões), mas cria avisos sobre popups.

O problema é a ordem em que você está fazendo as coisas. Você deve abrir a nova janela de um evento de usuário, como clicar em um botão. Se um script em um evento de carregamento de página tentar abrir uma janela, o navegador irá presumir que é um popup indesejado, já que o usuário não fez nada além de navegar para a página.

O que poderia funcionar para você, está adicionando um atributo target="somewhere_new" à sua etiqueta de form . Desta forma, o navegador abriria uma nova guia, pois não há quadro / iframe com um atributo name="somewhere_new" , e você não precisaria fazer nada especial no lado do servidor, basta processar os dados como antes, antes de usar $dompdf->stream('document.pdf',array('Attachment'=>0)); no fim

Você pode simplesmente fazer o seguinte:

   

O atributo formtarget = “_ blank” abrirá uma nova guia.

Espero que ajude você!