Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal estou com uma dúvida. Eu quero fazer um formulário em HTML e através dele gerar um arquivo PDF e já baixei uma biblioteca chamada mPDF 6.0 eu até pesquisei mas não consegui entender como fazer isso. Por exemplo tenho um formulário com os campos (nome, endereço, cidade) e ter um botão que gere um PDF. Como posso fazer isso?

  • Moderador
Postado

@DPB Com HTML apenas não.

Use o php e uma classe chamada "fpdf"  aí sim você pode gerar o pdf a partir de um formulário!

  • Curtir 1
Postado

Eu vi alguns exemplos onde eles tem 3 arquivos (index.html / modelo.html (que servir como modelo de seu PDF) / gerar_pdf.php) e eles usam a classe mPDF so que não estou conseguindo fazer você não teria um exemplo de como fazer com o fpdf.

Postado

@dif Ola bom dia consegui um modelo bem legal. Eu gostaria de saber se tem como deixar um modelo "tipo" HTML pronto para receber o arquivo pdf já formatado por exemplo com (cor da fonte, tamanho da fonte, receber os dados de uma tabela e fazer um upload de uma foto e colocar dentro do documento em um lugar especifico). Abaixo o código de exemplo em anexo.

 

Página index.php

<form method="post" action="gerarpdf.php">
   <label for="nome">Nome:</label><br>
   <input type="text" id="nome" name="nome"><br>
   <label for="horas">Horas:</label><br>
   <input type="text" id="horas" name="horas"><br>
   <label for="data">Data por extenso:</label><br>
   <input type="text" id="data" name="data"><br>
   <br>
   <input type="sumbit" value="Gerar PDF"><br>
</form>

 

Página gerarpdf.php

 

<?php 
   require_once( 'fpdf/fpdf.php' );
   
   
   $nome  = @$_POST['nome']; // Sim, a supressão é perfeitamente válida neste contexto
   $horas = @$_POST['horas']; // pois os parâmetros serão checados logo em seguida.
   $data  = @$_POST['data'];
   // Aqui você processa os parâmetros desejados, isto é só um exemplo.
   // Utilizei as variáveis do <form>, mas aqui você pode pegar o que
   // precisar de algum DB, ou mesmo misturar as técnicas.
   if( empty( $nome  ) ) $nome = "Anônimo da Silva";
   if( empty( $horas ) ) $horas = 24;
   if( empty( $data  ) ) $data = "17 de agosto de 2014";

   // e finalmente, geramos o PDF:
   $pdf = new FPDF();

   $pdf->AddPage();
   $pdf->SetFont('Arial','B', 14);
   $pdf->SetXY( 10, 20 );
   $pdf->Cell( 190, 0, 'DECLARAÇÃO', 0, 0, 'C');

   $pdf->SetFont('Arial','', 12);
   $pdf->SetXY( 10, 30 );
   $pdf->MultiCell( 190, 6,
      "  Eu, $nome, declaro que adquiri de Alaor Ivan Souza ".
      "um pacote de créditos para acesso à internet com duração ".
      "de $horas horas, iniciando-se em $data.\n".
      "  Declaro ainda que estas informações provavelmente são ".
      "inverídicas e sem sentido, pois isto aqui é um mero teste."
   );
   $pdf->Output();
?>

O exemplo acima esta funcionando perfeitamente, só gostaria de ter um pagina modelo para receber o formulário, ou seja, uma página já formatada. Obrigado.

  • Moderador
Postado

@DPB Você pode pegar os dados dos banco de dados normalmente como php, fazer a mesma estrutura com o while e os métodos/funções do fdpf 

Sobre o layout, tem uma extensão dele que permite isso: http://www.fpdf.org/en/script/script42.php

 

Contudo, aquele outro que você já usou, o mpdf, também é bom e tem suporte ao CSS.. só que pelo que li ele é bem rígido, onde tags mal declaradas ele não interpreta. 

Ainda assim eu prefiro o fpdf! Lembro-me que na faculdade eu fiz um exercício que tinha que apresentar um relatório de vendas de um e-commerce em pdf com gráficos forma de pizza vindo do banco! Só dava trabalho ter que montar todo o layout no pdf. Naquela época não existia o tal script extensor como esse que passei mais acima! :thumbsup:

Postado

@difOla bom dia.

 

Ainda estou apanhando para colocar o CSS no pdf, mas vou seguir tentando. Vi em alguns formulário o seguinte tem por exemplo os campos (nome, email) ai embaixo desses campos tem um botão de "+" ou alguma coisa parecida para adicionar mais campos como por exemplo (adicionei um "nome, email" so que tenho que acrescentar mais nomes nesse formulário então criaria esse botão de "+" vi em alguns fóruns que eles utilizam javascript para criar eventos para esse botão so que além de eles repetirem somente o campo e criar um campo novo eles "duplicam o campo junto com os dados adicionados". Eu gostaria de fazer esse evento sem ter que repetir os dados e sim somente os campos de preenchimento.

  • 3 anos depois...
Postado

Olá pessoal, eu tive o mesmo problema, gerar PDF a partir de um HTML. 

Como tenho muitos sites em hospedagens compartilhadas, e nao posso manipular scripts complexos devido a limitações na hospedagem, comecei a API HTMLparaPDF:

 

HTML2PDF / Converta HTML para PDF de um jeito fácil e rápido:

https://htmlparapdf.com.br/como-usar-api.cshtml

 

Espero que ajudem você's também.

 

[]'s

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...