L'arrivée du format PDF a révolutionné la façon de travailler des entreprises. En effet, au-delà de l'aspect esthétique, le format PDF peut être lu de la même façon sur n'importe quel type d'OS. La seule condition nécessaire et suffisante est de posséder Adobe Reader (ou tout autre viewer PDF). Sachant que plus de 500 millions de personnes utilisent Adobe Reader (source Adobe), la popularité de Acrobat n'est plus à démontrer.

Ce point de situation ne se veut pas exhaustif mais se propose de dresser un panorama des principales solutions actuellement disponnibles afin de vous permettre de vous forger une opinion.

Il faut tout d'abord faire une distinction entre les solutions de création de PDF, et les outils de « remplissage » de PDF. J’entends par « remplissage » , la possibilité de remplir un document PDF existant.

Concernant les solutions de création de PDF, nous avons FPDF. C’est une classe écrite en PHP. Elle est totalement gratuite et sous licence GPL. Très simple d'accès, elle ne demande aucun pré-requis particulier en terme d’installation (autre que le support de PHP évidemment, puisque écrite dans ce langage). A l’usage, on parvient rapidement à générer du PDF. Le projet FPDF est en évolution constante et son forum très actif, saura répondre à toutes vos questions. A noter que FPDF ne propose pas de remplir un PDF existant.

ClibPDF est une librairie écrite en C, disponible gratuitement pour une application non-commerciale mais une licence est obligatoire au delà. La dernière version disponible (2.02-r1-1) date du 12 Décembre 1999. Il s’agit, là encore, uniquement d’une librairie de génération. ClibPDF reste à priori peu utilisée.

PDFlib est une solution très populaire et utilisée par de grandes entreprises (General Electric, Mitsubishi, Nissan …). Cette API est disponible pour de nombreux OS (Linux, Windows, MacOS X, FreeBSD…). Et elle est compatible avec de nombreux langages autre que PHP (C, C++, Java, Perl). Elle permet uniquement de générer du PDF, mais d’autres produits dont nous parlerons plus tard viennent l’enrichir pour permettre le « remplissage » de PDF existans.

Justement, parlons maintenant des solutions de « remplissage » de PDF.

FDF est un kit de développement gratuit fourni par Acrobat, disponible sous Linux, Solaris et Windows. Toutefois, la version actuelle pour Windows, se limite à l’ActiveX, au C et au Perl. Donc pas de dll à proprement parler disponible pour le PHP. Après installation du plug-in FDF, vous verrez dans votre Adobe Writer une petite icône « FORM TOOL ». Grâce à cet outil, vous allez pouvoir placer des champs de formulaires où vous voulez sur votre document PDF. Ensuite dans votre script, vous allez pouvoir matcher vos données et les champs PDF simplement à partir de leur nom.

Le seul inconvénient est que le résultat vous fournira un fichier FDF, qui effectivement remplira le PDF, mais sans le document PDF. Le FDF n’est qu’un fichier texte. De plus, les données du FDF, pourront être modifiés aisément en éditant en clair le fichier.

On pourrait effectivement « fondre » les données FDF et le PDF associé. Mais actuellement il n’existe pas de solution gratuite permettant un tel résultat. Il vous faudra débourser entre 49 USD (FPF2PDF) et 995 USD (FDFMerge) pour vous dotez des outils qui vous permettront de le faire.

FDF n’en est pas moins une solution intéressante qui, sous sa forme actuelle, peut être utile, si l’application ne requiert pas un niveau élevé de sécurité.

Je vais maintenant traiter des solutions fournies par PDFlib.

La PDFLIB5+PDI est une solution payante, qui permet de remplir un PDF et de générer un PDF en sortie , pour cela il faut manuellement chercher les coordonnées de chaque élément du formulaire. Ensuite, dans le code PHP on ajoute les données selon les coordonnées précédemment récupérées et on génère le document PDF, correctement rempli.

Vous pouvez télécharger la PDFLIB5+PDI pour l’essayer, sans l’acheter. Mais chacun de vos documents PDF générés auront une bande diagonale vous rappelant d’acheter la licence.

PDFLIB5+PPS est la version au-dessus de PDI. Personnellement, je n’ai pas vu d’évolution majeure entre la version 4 et 5 modulo la protection des documents. Quant au module PPS, il est très utile ! En effet, cette dernière solution reprend tous les avantages des solutions précédentes (la possibilité de matcher des champs et des données, placer des règles de sécurité, modifier très simplement une font sur le PDF, etc.). Seul point noir : cette solution est payante et plus chère que PDI. Comptez de l'ordre de 900 USD pour PDI, 1450 USD pour PPS.

Adobe propose également ses solutions comme Web Output Pak et Adobe Document Server qui semblent être de très bons produits mais je ne les ai pas testé.

D’autres solutions de génération et/ou « remplissage » de PDF existent sûrement. N’hésitez pas à les faire connaître en postant ici même.

NDR : merci à Catherine Lao pour sa participation à la rédaction de ce point de situation.