×

En savoir plus

Boîte d'auteur


Discutez de votre projet

À propos de nous

Nous sommes un partenaire Microsoft Gold avec sa présence aux États-Unis et en Inde. Nous sommes un fournisseur de services informatiques dynamique et professionnel au service des entreprises et des startups, en les aidant à relever les défis de l'économie mondiale. Nous offrons des services dans le domaine de la consultation et de la mise en œuvre CRM, du développement d'applications, du développement d'applications mobiles, du développement Web et du développement offshore.

Remplir des formulaires PDF avec PHP et PDFtk

Comment remplir des formulaires PDF avec PHP et PDFtk ?

By Pooja Sharma / 13 décembre 2021

14 décembre 2021
Comment remplir des formulaires PDF avec PHP et PDFtk ?

Aujourd'hui, les fichiers PDF sont devenus l'une des méthodes les plus courantes de partage de documents en ligne. L'utilisation d'un document PDF est souvent la première option, que vous ayez besoin de fournir les documents de vos clients à des prestataires de services tiers tels que des compagnies d'assurance ou des banques, ou simplement d'envoyer un CV à un employeur. Travailler avec des fichiers PDF vous permet de partager du texte brut et formaté, des liens hypertexte, des images et même les différents formulaires à remplir dont vous avez besoin.

Dans ce blog, nous comprendrons que comment on peut remplir des formulaires PDF en utilisant PHP et un formidable outil de manipulation de PDF connu sous le nom Serveur PDFtk. Ici, nous montrerons comment travailler dynamiquement en ajoutant des données au format PDF via des formulaires HTML.

A PDF remplissable est un document PDF qui contient des champs modifiables sans logiciel d'édition PDF. Pour remplir dynamiquement le PDF à remplir, il faut créer un formulaire HTML et le lier dynamiquement. Pour ce faire, nous allons créer un script PHP.

Vous trouverez ci-dessous l'étape suivante et quelques logiciels et bibliothèques pour remplir un PDF à remplir.

Pré-requis :

Étape 1) Aller au dessus Lien du serveur PDFtk Et installez le serveur PDFtk selon votre système d'exploitation.

Après avoir installé le logiciel, ouvrez l'invite de commande et exécutez la commande :

Étape 2) Créez un dossier pour le script sur votre serveur local, le nom du dossier peut être n'importe quoi. Dans ce cas, nous avons créé un dossier nommé : «pdf à remplir”, créez maintenant index.php dans un dossier pdf à remplir.

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>

Création style.css fichier pour le formulaire semble bon. 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;
}

Étape 3) Créer composer.json fichier pour installer la bibliothèque PDFtk.

www/public_html/fillabe-pdf/composer.json

{
"name": "mrdigital/pdftk",
"autoload" : {

"psr-4" : {

"Classes\\":"./classes"

}
},
"require": {
"mikehaertl/php-pdftk": "^0.10.3"
}
}

Après cela, exécutez cette commande :

Le compositeur nécessite mikehaertl/php-pdftk, cette commande crée un dossier fournisseur et télécharge la bibliothèque PDFtk.

Étape 4) Vérifiez les exemples de champs de fichier pdf à remplir et les champs de carte avec handler.php déposer. Ensuite, ouvrez le pdf à remplir sur n'importe quel logiciel d'édition pour vérifier les champs de saisie avec les noms de champs mappés. Vous pouvez utiliser ceci https://www.pdffiller.com/ site pour obtenir le nom du champ.

Aussi, lisez: Extraire tout type de données d'une feuille Excel à l'aide de la fonction Azure

Étape 5) Créez un fichier de gestionnaire pour gérer les demandes de publication, en mappant la valeur des champs pdf à la valeur du formulaire de publication.

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);

Étape 6) Créer des classes de dossiers pour la classe Create Générer un 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();
}

}
}

Étape 7) Créer un pdf_fill dossier pour stocker des pdf à remplir.

Étape 8) Protégez votre dossier pour des raisons de sécurité, créez index.php fichier vide dans les classes et pdf_fill dossier.

www/public_html/fillabe-pdf/classes/index.php ou www/public_html/fillabe-pdf/pdf_fill/index.php

<?php
// Nothing here

Aussi, lisez: Principaux frameworks de développement d'applications Web pour 2022 : obtenez la plus grande évolutivité à moindre coût

Récapitulation

Avec l'implémentation ci-dessus, vous pouvez installer PDFtk et apprenez certaines de ses commandes utiles comme dump_data_fields et remplir le formulaire. Avec toutes les étapes ci-dessus, vous serez en mesure d'atteindre avec succès la fonctionnalité personnalisée remplissable en pdf.

Veuillez noter que cette implémentation est basique, et nous avons essayé de garder les choses aussi simples que possible. Si vous rencontrez toujours des problèmes, vous pouvez vous connecter avec notre équipe de développement pour toute assistance supplémentaire.

[sc name="Web Development"] [add_newsletter] [add_related_page_diff_contents blog_cat = "web-application"]

Aujourd'hui, les fichiers PDF sont devenus l'une des méthodes les plus courantes de partage de documents en ligne. L'utilisation d'un document PDF est souvent la première option, que vous ayez besoin de fournir les documents de vos clients à des prestataires de services tiers tels que des compagnies d'assurance ou des banques, ou simplement d'envoyer un CV à un employeur. Travailler avec des fichiers PDF vous permet de partager du texte brut et formaté, des liens hypertexte, des images et même les différents formulaires à remplir dont vous avez besoin.

Dans ce blog, nous comprendrons que comment on peut remplir des formulaires PDF en utilisant PHP et un formidable outil de manipulation de PDF connu sous le nom Serveur PDFtk. Ici, nous montrerons comment travailler dynamiquement en ajoutant des données au format PDF via des formulaires HTML.

A PDF remplissable est un document PDF qui contient des champs modifiables sans logiciel d'édition PDF. Pour remplir dynamiquement le PDF à remplir, il faut créer un formulaire HTML et le lier dynamiquement. Pour ce faire, nous allons créer un script PHP.

Vous trouverez ci-dessous l'étape suivante et quelques logiciels et bibliothèques pour remplir un PDF à remplir.

Pré-requis :

Étape 1) Aller au dessus Lien du serveur PDFtk Et installez le serveur PDFtk selon votre système d'exploitation.

Après avoir installé le logiciel, ouvrez l'invite de commande et exécutez la commande :

Étape 2) Créez un dossier pour le script sur votre serveur local, le nom du dossier peut être n'importe quoi. Dans ce cas, nous avons créé un dossier nommé : «pdf à remplir”, créez maintenant index.php dans un dossier pdf à remplir.

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>

Création style.css fichier pour le formulaire semble bon. 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;
}

Étape 3) Créer composer.json fichier pour installer la bibliothèque PDFtk.

www/public_html/fillabe-pdf/composer.json

{
"name": "mrdigital/pdftk",
"autoload" : {

"psr-4" : {

"Classes\\":"./classes"

}
},
"require": {
"mikehaertl/php-pdftk": "^0.10.3"
}
}

Après cela, exécutez cette commande :

Le compositeur nécessite mikehaertl/php-pdftk, cette commande crée un dossier fournisseur et télécharge la bibliothèque PDFtk.

Étape 4) Vérifiez les exemples de champs de fichier pdf à remplir et les champs de carte avec handler.php déposer. Ensuite, ouvrez le pdf à remplir sur n'importe quel logiciel d'édition pour vérifier les champs de saisie avec les noms de champs mappés. Vous pouvez utiliser ceci https://www.pdffiller.com/ site pour obtenir le nom du champ.

Aussi, lisez: Extraire tout type de données d'une feuille Excel à l'aide de la fonction Azure

Étape 5) Créez un fichier de gestionnaire pour gérer les demandes de publication, en mappant la valeur des champs pdf à la valeur du formulaire de publication.

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);

Étape 6) Créer des classes de dossiers pour la classe Create Générer un 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();
}

}
}

Étape 7) Créer un pdf_fill dossier pour stocker des pdf à remplir.

Étape 8) Protégez votre dossier pour des raisons de sécurité, créez index.php fichier vide dans les classes et pdf_fill dossier.

www/public_html/fillabe-pdf/classes/index.php ou www/public_html/fillabe-pdf/pdf_fill/index.php

<?php
// Nothing here

Aussi, lisez: Principaux frameworks de développement d'applications Web pour 2022 : obtenez la plus grande évolutivité à moindre coût

Récapitulation

Avec l'implémentation ci-dessus, vous pouvez installer PDFtk et apprenez certaines de ses commandes utiles comme dump_data_fields et remplir le formulaire. Avec toutes les étapes ci-dessus, vous serez en mesure d'atteindre avec succès la fonctionnalité personnalisée remplissable en pdf.

Veuillez noter que cette implémentation est basique, et nous avons essayé de garder les choses aussi simples que possible. Si vous rencontrez toujours des problèmes, vous pouvez vous connecter avec notre équipe de développement pour toute assistance supplémentaire.

Services de développement Web

Êtes-vous à la recherche d'une entreprise de développement Web fiable? Nos développeurs Web hautement qualifiés nous permettent de fournir des services de développement Web axés sur les résultats. Contactez notre équipe pour comprendre comment nous pouvons vous aider à atteindre vos objectifs commerciaux.



invité
0 Commentaires
Commentaires en ligne
Voir tous les commentaires
0
J'adorerais vos pensées, veuillez commenter.x