it-swarm-pt.tech

Preenchimento PDF Formulários com PHP

Existem bibliotecas PHP que podem ser usadas para preencher PDF formulários e depois salvá-las)) em arquivos PDF?

47
mno

As bibliotecas e estruturas mencionadas aqui são boas, mas se tudo o que você deseja fazer é preencher um formulário e achatá-lo, recomendo a ferramenta de linha de comando chamada pdftk (PDF Toolkit).

Consulte https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Você pode chamar a linha de comando do php, e o comando é

pdftk formfile.pdf fill_form fieldinfo.fdf output outputfile.pdf flatten

Você precisará encontrar o formato de um arquivo FDF para gerar as informações para preencher os campos. Aqui está um bom link para isso:

http://www.tgreer.com/fdfServe.html

[Editar: O link acima parece estar fora de serviço. Aqui estão mais algumas informações ...]

O comando pdftk pode gerar um arquivo FDF a partir de um arquivo de formulário PDF. Você pode usar o arquivo FDF gerado como uma amostra. Os campos do formulário são a parte do arquivo FDF que se parece com

...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...

Você também pode conferir php-pdftk , que é uma biblioteca específica para PHP. Eu não o usei, mas o comentarista Álvaro (abaixo) recomenda.

47
bmb

Um grande +1 na resposta aceita e uma pequena dica se você tiver problemas de codificação com o arquivo fdf. Se você gerar o fields.fdf e após a execução

file -bi fields.fdf

você recebe

application/octet-stream; charset=binary

é provável que você tenha um problema com o conjunto de caracteres UTF-16. Tente converter o ftf por meio de

cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf

Pude editar e importar o arquivo better.fdf para o meu formulário PDF.

Espero que isso poupe alguém do Google

5
Val Redchenko

gerando arquivo fdf com php: consulte http://www.php.net/manual/en/book.fdf.php

em seguida, preencha-o em PDF com o pdftk (veja acima)

3
proofy

Para:

  • Formato de entrada mais fácil que o XFDF
  • Suporte verdadeiro UTF-8 (russo)
  • Exemplo completo de uso de php

Sinta-se livre para verificar o meu PdfFormFillerUTF-8 .

3
Nikolay

Eu tive muito sucesso com o uso de um formulário que é enviado para um script php que usa fpdf e passa nos campos do formulário como variáveis ​​de obtenção (talvez não seja uma ótima prática recomendada, mas funciona).

 <?php
require('fpdf.php');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetY(30);
$pdf->SetX(100);
$pdf->MultiCell(10,4,$_POST['content'],0,'J');
$pdf->Output();
?>

e você poderia ter algo assim.

  <form action="fooPDF.php" method="post">
     <p>PDF CONTENT: <textarea name="content" ></textarea></p>
     <p><input type="submit" /></p>
    </form>

Este exemplo esquelético deve ajudá-lo a começar.

3
josh.chavanne

Eu escrevi uma biblioteca Perl, CAM :: PDF , com um interface da linha de comandos que pode resolver isso. Eu tentei usar uma solução FDF anos atrás, mas achei muito complicado e foi por isso que escrevi o CAM :: PDF em primeiro lugar. Minha biblioteca usa algumas heurísticas para substituir o formulário pelo texto desejado, portanto não é perfeito. Mas funciona na maioria das vezes, e é rápido, gratuito e simples de usar.

1
Chris Dolan

Parece que isso foi coberto antes . Clique no código relevante usando o Zend Framework PDF library.

1
pix0r

Usamos PDFLib no trabalho. A versão paga não é muito cara e há uma edição de código aberto mais limitada, se você não conseguir concorrer com a versão paga.

1
foxxtrot