Hoje, os arquivos PDF se tornaram um dos métodos mais comuns de compartilhamento de documentos online. Usar um documento PDF é geralmente a opção mais importante, quer você precise fornecer os documentos de seus clientes a prestadores de serviços terceirizados, como seguradoras ou bancos, ou simplesmente enviar um currículo a um empregador. Trabalhar com arquivos PDF permite compartilhar texto simples e formatado, hiperlinks, imagens e até mesmo diferentes formulários preenchíveis de que você precisa.
Neste blog, estaremos entendendo como se pode preencher formulários PDF usando PHP e uma tremenda ferramenta de manipulação de PDF conhecida como Servidor PDFtk. Aqui estaremos demonstrando como se pode trabalhar dinamicamente adicionando dados em formato PDF por meio de formulários Html.
A PDF preenchível é um documento PDF que contém alguns campos editáveis sem o software editor de PDF. Para preencher o PDF preenchível de forma dinâmica, é necessário criar um formulário HTML e vinculá-lo dinamicamente. Para fazer isso, criaremos um script PHP.
Abaixo estão as etapas a seguir e alguns softwares e bibliotecas para preencher o PDF preenchível.
Pré-requisitos:
- Servidor PDFtk - Software de manipulação de PDF
- Compor - Compositor
- php-pdftk Biblioteca para PDFtk
Passo 1) Vá para o acima Link do servidor PDFtk e instale o Servidor PDFtk de acordo com seu sistema operacional.
Depois de instalar o software, abra o prompt de comando e execute o comando:
Passo 2) Crie uma pasta para o script em seu servidor local, o nome da pasta pode ser qualquer coisa. Neste caso, criamos uma pasta chamada: “preenchível-pdf”, Agora crie index.php na pasta de pdf preenchível.
www / public_html / fillabe-pdf / index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>How To Fill A Fillable PDF Form with PHP using PDFtk</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<form action="handler.php" method="POST">
<h1>Generate Fillable PDF Dynamically</h1>
<p>Fill the form and your data will fill in a PDF</p>
<div class="form-group row">
<div class="col-lg-6">
<input type="text" name="fname" class="form-control" placeholder="First Name">
</div>
<div class="col-lg-6">
<input type="text" name="lname" class="form-control" placeholder="Last Name" required>
</div>
</div>
<div class="form-group row">
<div class="col-lg-6">
<input type="email" name="email" class="form-control" placeholder="Email" required>
</div>
<div class="col-lg-6">
<input type="tel" name="phone" class="form-control" placeholder="Phone" required>
</div>
</div>
<div class="form-group">
<textarea name="message" cols="30" rows="10" class="form-control" placeholder="Your Message" required></textarea>
</div>
<button type="submit" class="btn btn-block btn-success">Sumbit</button>
</form>
</div>
</body>
</html>
Crie style.css arquivo para formulário parece bom. www / public_html / fillabe-pdf / style.css
body {
padding: 5rem 0;
}
.btn-block {
display: block;
width: 10%;
}
.btn-success {
color: #fff;
background-color: #0062cc;
border-color: #007bff;
}
.btn-success:hover {
color: #fff;
background-color: #0062cc;
border-color: #0062cc;
}
Passo 3) Crio composer.json arquivo para instalar a biblioteca PDFtk.
www / public_html / fillabe-pdf / composer.json
{
"name": "mrdigital/pdftk",
"autoload" : {
"psr-4" : {
"Classes\\":"./classes"
}
},
"require": {
"mikehaertl/php-pdftk": "^0.10.3"
}
}
Depois disso, execute este comando:
O Composer requer mikehaertl / php-pdftk, este comando cria uma pasta de fornecedor e baixa a biblioteca PDFtk.
Passo 4) Verifique os campos do arquivo pdf preenchível de amostra e os campos do mapa com handler.php Arquivo. Em seguida, abra o PDF preenchível em qualquer software editor para verificar os campos de entrada com os nomes dos campos mapeados. Você pode usar isso https://www.pdffiller.com/ site para obter o nome do campo.
Além disso, leia: Extraia qualquer tipo de dados da planilha do Excel usando a função Azure
Passo 5) Crie um arquivo de manipulador para lidar com solicitações de postagem, mapeando o valor dos campos PDF para postar o valor do formulário.
www / public_html / fillabe-pdf / handler.php
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
exit;
}
define('ACCESSCHECK', TRUE);
require_once 'vendor/autoload.php';
use Classes\GeneratePDF;
$data = [
'name_field' => $_POST['fname'] .' ' . $_POST['lname'],
'email_field' => $_POST['email'],
'phone_field' => $_POST['phone'],
'enquiry_field' => $_POST['message']
];
$pdf = new GeneratePdf;
$response = $pdf->generate($data);
print_r($response);
Passo 6) Criar classes de pasta para criar classe Gerar PDF.
www / public_html / fillabe-pdf / classes / GeneratePDF.php
<?php
namespace Classes;
if(!defined('ACCESSCHECK')) {
die('Direct access not permitted');
}
use mikehaertl\pdftk\Pdf;
class GeneratePDF {
public function generate($data)
{
try {
$filename = 'pdf_fillabel' . rand() . '.pdf';
$pdf = new Pdf('./test.pdf');
$pdf->fillForm($data)
->flatten()
->saveAs( './pdf_fill/' . $filename);
return $filename;
}
catch(Exception $e)
{
return $e->getMessage();
}
}
}
Passo 7) Crie uma pdf_preenchimento pasta para armazenar pdf preenchível.
Passo 8) Proteja sua pasta por razões de segurança, crie index.php arquivo vazio nas aulas e pdf_preenchimento pasta.
www / public_html / fillabe-pdf / classes / index.php ou www / public_html / fillabe-pdf / pdf_fill / index.php
<?php
// Nothing here
Além disso, leia: Principais estruturas de desenvolvimento de aplicativos da Web para 2022: obtenha o máximo de escalabilidade com custos mais baixos
Resumindo
Com a implementação acima, você pode instalar pdftk e aprenda alguns de seus comandos úteis, como dump_data_fields e preencher formulário. Com todas as etapas acima, você poderá obter com sucesso a funcionalidade personalizada de preenchimento de PDF.
Observe que esta implementação é básica e tentamos manter as coisas o mais simples possível. Se ainda assim, você está tendo algum problema, você pode se conectar com nosso equipe de desenvolvimento para qualquer assistência adicional.
Serviços de desenvolvimento web
Você está procurando uma empresa de desenvolvimento web confiável? Nossos desenvolvedores web altamente qualificados nos permitem entregar serviços de desenvolvimento web orientados a resultados. Entre em contato com nossa equipe para entender como podemos ajudá-lo a atingir seus objetivos de negócios.