[RESOLVIDO]Cadastro de pdf com preview

Bom dia meus colegas, tenho um formulario onde o usuario insere os dados que serão printados em um pdf, ele gera esse pdf e o user pode imprimir:


Até ai esta perfeito, funcionando corretamente e tudo mais, porém eu gostaria de saber se alguem sabe um modo de adicionar um preview ao lado do form com o pdf, como a baixo:

Para deixar como acima estou usando Mestre/Detalhes no form principal, porém não é possivel vincular uma arquivo PDF, estão vinculo um grid que redireciona para o pdf, além de ser uma gambiarra gigante, ele da erro ao usar o navigate, além disso gostaria de que, ao autlizar uma informação ele atualizasse o detalhe da direita, talvez eu tenha que refazer do 0 esse formulario, estou preparado para isso, mas gostaria de saber se alguém ja teve um situação parecida que pudesse me dar um norte, desde já, agradeço.

uma ideia, se criar um controle, nele cria dois frames, fiz algo assim para exibir documentos assinados, converto para o base64 e depois exibo, segue o trecho que faço isto:

$PegaPDF = "gobook.pdf";
$Caminho = "https://www.golang-book.com/public/pdf/".$PegaPDF;
$Converte = file_get_contents($Caminho);
$base64Arquivo = base64_encode($Converte);


header("Content-Type: application/pdf");
header("Content-Disposition: inline;");
echo file_get_contents('data://application/pdf;base64,' . $base64Arquivo);	
1 Curtida

Opa, obrigado pelo retorno, testei e ele apresenta erro


Ocaminho esta correto, se eu copiar e colar no navegador, ele abre certo

Acho que também não é possivel usar um controle no metodo Mestre\Detalhe do formulario

voce esta com o allow_url_fopen ligada no php.ini? pode ser isto

tenta colocar no inicio do programa, assim não precisa mexer no php.ini
ini_set(‘allow_url_fopen’, ‘On’);

o que pensei seria um controle e nele colocaria dois frames, um para a grid e outro para o pdf

1 Curtida

A principio sim, mas adicionei o que sugeriu e o erro persistiu.

Compreendi agora o uso do controle com os inframes, desculpe

Falei controle, mas seria uma blank… eu fiz um teste, abri uma blank, coloquei exatamente este código que passei e funcionou, só se tem agum bloqueio, se for isto teria que utilizar o curl

1 Curtida

Shooow, na blank da certo mesmo, mas para eu entender, tu montou os 2 frames aonde? pois a blank esta servindo para abrir o pdf, mas como tu fez para abrir ela ao lado de um form?

na blank… seria mais ou menos assim, tvz funcione, não custa tentar :slight_smile:

<div id="principal" style="background-image:none;">		
	<table align=center >
		<tr>
		<td width="49%">
		   <iframe src="https://Caminho_grid" width="550" height="600" style="border: none;"></iframe></td>
		</td>
		<td width="1%"> </td>
		<td width="49%">
		   <iframe src="https://caminho_pdf" width="550" height="600" style="border: none;"></iframe></td>
		</td>
		</tr>
    </table>
</div>	
2 Curtidas

Nesse exemplo o bloco onde é exibido o pdf fica escondido (acionado por um botão) , mas pode deixar ele exibido o tempo todo e no salvamento do formulário a recarga do bloco para simular o preview.

1 Curtida

Compreendi, desculpe tinha entendido diferente, vale a pena tentar sim, hoje a tarde não poderei, mas asim q testar dou um retorno, muito obrigado

Perfeio, acho qe esse exemplo vai se encaixar como uma luva na minha demanda, mais uma vez muito obrigado.

Vou testar e dou retorno no post de como fiz.

se funcionar(e se utilizar) o esquema de frame pode colocar um id para ele e atualizar usando o JavaScript, assim após atualizar o da esquerda pede para recarregar o da direita

<iframe id="IdFramePDF" src="https://caminho_pdf"...

JS:
document.getElementById('IdFramePDF').contentWindow.location.reload();
1 Curtida

Ambos exemlos deram certo, vou ver qual se encaixa melhor, mas ambos otimos. Muito obrigado @InfinitusWeb @jair

2 Curtidas