I. I. Présentation générale▲
Bruno Lowagie, pouvez-vous vous présenter ?
- Je suis né en 1970. J'ai étudié l'architecture des bâtiments. A 15 ans j'ai écrit un système de bases de données en Basic. Après mes études d'architecture en Belgique, j'ai enchainé des études d'informatique.
- A 30 ans, en l'an 2000, j'ai commencé à écrire la librairie iText®.
II. La librairie iText®▲
Comment est née la librairie PDF iText® ?
- En 1998 je travaillais pour l'université de Gent et nous avions un projet d'administration des étudiants (cours, étudiants, notes) qui imposait d'imprimer via une imprimante HP. J'ai alors eu l'idée de créer une application web à partir de laquelle on peut générer une liste des étudiants dans un fichier PDF, un format standard de facto. FOP existait déjà mais nous avions besoin d'un moteur PDF plus rapide car la liste des étudiants pouvait être très longue (avec 500 étudiants par cours, créer des documents de 500 pages n'était pas rare).
- Donc en 1998-99 j'ai écrit ma première librairie PDF pour l'université. Mais c'était une librairie très dure à utiliser pour quelqu'un qui ne connaissait pas PDF. Il y avait beaucoup de commandes PDF (moveTo, lineTo, showText ...). Si on ne connaissait pas la syntaxe PDF, on ne savait rien faire avec cette première librairie que j'ai écrite. Donc en l'an 2000 j'ai créé mon projet et je suis reparti de zéro avec le but de générer du PDF sans avoir besoin de connaître la syntaxe PDF.
- J'ai alors introduit des objets comme document, paragraph, table, cell, chunk, section ... C'est un projet que j'ai tout de suite mis en open source. La première release a été faite le 14 janvier 2000. Et durant l'été, Paulo Soares, un développeur portugais, a ajouté d'autres fonctionnalités comme le support pour les images aux formats PNG, GIF...
Aujourd'hui, qui s'occupe de iText® ?
- Jusqu'en 2008, c'était moi, Paulo Soares et des volontaires.
- En 2007, j'ai rédigé un aperçu de la propriété intellectuelle, à la demande d'IBM, afin de savoir qui a écrit le code de chaque classe. A l'époque iText® était utilisé dans Eclipse/BIRT, un produit de Actuate qui est un des membres de la fondation Eclipse. Jusqu'en 2007, il fallait télécharger Eclipse/BIRT sur le site de la fondation Eclipse, puis, si nécessaire, télécharger iText® par la suite.
- En janvier 2008, nous avons créé l'entreprise 1T3XT (iText®.com était déjà pris). En février 2008, j'ai mis en suspens mes activités car mon fils avait été diagnostiqué avec un cancer.
- Toujours en 2008, un américain, Andrew L Binstock, a créé l'entreprise iText® Software Corporation, près de San Francisco et a commencé à vendre des licences.
- En 2010, j'ai suivi des workshops faisant partie d'un programme de MBA à l'école de management Vlerick et j'ai quitté mon poste à l'université.
- Donc aujourd'hui, nous avons des personnes qui travaillent aux Etats-Unis pour la vente de licences et nous avons des personnes en Belgique qui s'occupent du développement.
- Le processus de professionnalisation continue avec l'acquisition d'une marque déposée pour iText® et la réorganisation en cours des entreprises iText®.
- Depuis quelque temps, nous faisons également du support et du conseil. Le développement d'iText® est devenu mon activité principale.
Beaucoup de développeurs s'appuient sur des frameworks tel que JasperReports (qui utilise la librairie iText®) pour générer et manipuler un fichier PDF. Aujourd'hui, est-ce que l'on peut se passer de ces frameworks et s'appuyer uniquement sur l'API iText® ?
- JasperSoft est un de nos clients à iText® Software Corp. Nous n'avons pas l'ambition de rivaliser avec nos clients.
- Il y a des projets où des outils comme iReport sont très utiles pour permettre de créer des modèles sans avoir à programmer.
- Et il y a d'autres projets pour lesquels une solution programmée est meilleure, par exemple quand on a besoin d'une fonctionnalité qui n'est pas disponible dans iReport/JasperReports.
Est-ce que vous pensez qu'un outil de design comme iReport sera disponible pour iText® aussi ?
- Peut-être un jour mais ce n'est pas une de nos priorités pour le moment. Le cœur de métier d'iText® est le format PDF.
- Nous sommes en train d'étudier les nouveautés que va nous apporter la spécification ISO-32000-2.
- Et nous avons 5 idées pour 2011 (auxquelles nous avons ajoutés 2 autres idées):
- le refactoring de la classe HTMLWorker pour supporter plus de tags HTML et de styles CSS
- permettre la conversion XFA vers le format PDF
- développer les signatures digitales : PAdES, timestamps...
- créer un plug-in Eclipse pour examiner/deboguer des fichiers PDF
- développer iText® pour Android
- développer l'accessibilité (PDF tagué, PDF/UA)
- ajouter des options dans les fichiers PDF pour afficher des informations géographiques (GIS).
- Au lieu de rivaliser avec des clients, nous préférons investir notre énergie dans le développement de ces idées.
III. Le livre "iText in action"▲
Vous avez écrit en 2007 le livre "iText in action" (690 pages) aux éditions Manning. En 2010, vous avez écrit une deuxième édition (617 pages) de ce livre. Quelle a été votre motivation pour écrire cette deuxième édition ?
- La première édition du livre s'est bien vendue et au départ les éditions Manning ont souhaité que je fasse une révision, c'est-à-dire que j'ajoute des choses à cette première édition. Mais j'ai préféré écrire un nouveau livre avec une autre structure.
En effet j'avais utilisé la première édition pour donner des cours mais je me suis rendu compte que c'était difficile car dans cette première édition je suis rentré dans les détails dès le début. - J'ai donc préféré découper la deuxième édition en quatre parties :
- La première partie, "Creating PDF documents from scratch", explique comment générer des fichiers PDF, sans rentrer dans les détails. Cette première partie permet de faire un Proof Of Concept.
- La deuxième partie, "Manipulating existing PDF documents", est consacrée aux fichiers PDF déjà générés.
- Les lecteurs de la première édition m'ont dit qu'ils ne lisent pas le livre de la première à la dernière page mais qu'ils l'utilisent comme livre de référence. C'est pour cela que j'ai fait ce découpage. Ainsi, dans la troisième partie, intitulée "Essential iText® skills", j'ai ajouté les détails. Par exemple dans la première partie j'explique comment ajouter une image, sans rentrer dans les détails. Si on souhaite ajouter de la transparence ou traiter un format particulier d'image alors le lecteur pourra trouver cette information dans le chapitre 10, "Brightening your document with colors and images", de cette troisième partie.
- La quatrième partie, "Under the hood", est une partie que j'avais déjà voulu intégrer dans la première édition mais le livre faisait déjà 500-600 pages, ce qui était déjà beaucoup. Dans le chapitre 14, qui n'est pas destiné à être lu de la première à la dernière page, j'ai regroupé des tableaux qui se trouvaient de façon éparse dans la première édition.
- J'avais pour but d'écrire une deuxième édition avec moins de pages. En anglais il existe une expression, "You have to kill your darlings", c'est quelque chose que je ne pouvais pas faire dans la première édition. Au final, dans cette deuxième édition, il y a plus de contenu mais moins de pages.
- Un autre but était de combler les lacunes de la première édition, notamment celles qui ont été soulevées dans des questions soumises dans des mailing-lists.
Quelles sont les nouveautés ?
- Les nouveautés du livre sont donc sa nouvelle structure, XFA (XML Forms Architecture), le parsing d'un fichier PDF pour en extraire son contenu, le Rich Media (par exemple insérer un composant Flash dans un fichier PDF), l'intégration des nouveautés de la spécification PDF...
A quel public s'adresse ce livre ?
- A toute personne qui souhaite créer des fichiers PDF.
- La première partie est destinée aux personnes qui ne connaissent pas encore iText®.
Les troisième et quatrième parties sont destinées aux développeurs expérimentés.
Avez-vous un chapitre préféré ?
- Manning offre la possibilité de télécharger gratuitement deux chapitres :
- j'ai choisi le chapitre 2 "Using iText®'s basic building blocks" car c'est le chapitre le plus long et le chapitre 6 "Working with existing PDFs" qui est un aperçu de tout ce qu'il est possible de faire pour manipuler des fichiers au format PDF. C'est un chapitre auquel je renvoie souvent pour répondre à des questions dans les mailing-lists et que je recommande donc de télécharger.
- Le chapitre que je préfère et que j'utilise le plus souvent est le chapitre 14. Ce n'est pas un chapitre agréable à lire mais c'est un chapitre très utile car il contient des tableaux et des références.
Aujourd'hui, quelles sont les solutions concurrentes de iText® ?
- C'est une question difficile.
- Autrefois on parlait de FOP mais pour moi c'est quelque chose de très différent.
- Les solutions concurrentes sont :
- Mais je ne regarde pas trop la concurrence parce que je regarde avant tout ce qui est nouveau dans les spécifications PDF. Je suis maintenant dans le comité de standardisation en Belgique donc je reçois les standards ISO et cela reste mon point de référence, ce n'est pas la concurrence.
Pourquoi, quand et comment quelqu'un doit-il utiliser iText® ?
- La réponse à cette question se trouve dans notre product sheet. Les développeurs peuvent utiliser iText® pour :
- générer un fichier PDF à la volée et l'afficher dans un navigateur
- générer des documents dynamiques à partir de sources telles que des fichiers XML ou des bases de données
- ajouter ou supprimer de l'interactivité. Par exemple rendre un formulaire interactif non modifiable une fois qu'il est rempli.
- ajouter des bookmarks, des numéros de pages, des watermarks
- découper, concaténer et manipuler des pages de fichiers PDF
- automatiser le remplissage de formulaires au format PDF. Par exemple pré-remplir le nom dans une facture.
- ajouter une signature digitale
IV. Le format PDF (Portable Document Format)▲
Selon vous, quels sont les gros avantages et les manques du format PDF. Quelles seraient les évolutions possibles ?
- PDF a été créé pour fournir un format consistant. Ainsi, lorsqu'on envoie un document pour impression à l'imprimante, alors, peu importe le système d'exploitation de l'ordinateur (Mac, Linux, Windows ...), un mot qui se trouve aux coordonnées X, Y à la page Z sur Windows reste aux coordonnées X, Y à la page Z sur Linux.
- Au départ, le document PDF était un produit fini. Mais le format PDF est en train d'évoluer. Un PDF peut maintenant être une application. Par exemple, le site d'ESPN, une chaîne de télévision américaine spécialisée dans le sport, fourni une application sous la forme d'un PDF avec un aperçu des résultats de la NBA, avec des vidéos et des tableaux qui changent.
- Concernant les avantages, avec les évolutions, on peut citer l'accessibilité : un document peut être lu par un non-voyant. On ajoute une structure au PDF de sorte qu'il puisse être lu à haute voix. C'est un standard PDF ISO-UA (Universal Accessibility) encore en développement. On pourra par exemple changer le layout d'un ebook lorsqu'il est lu dans un téléphone dont l'écran est plus petit.
- La mission de iT3XT est d'aller vers un monde sans papier, en cherchant les limites de l'interactivité. Je ne souhaite pas que le livre disparaisse mais je souhaite qu'on remplace certains documents, comme tous les formulaires de l'Etat que l'on doit remplir en plusieurs exemplaires, par des formulaires PDF que l'on peut signer.
V. Conclusion▲
Quelles sont vos technologies de prédilection ?
- iText® existe en Java et en C#. Mais je préfère me focaliser sur Java et le format PDF donc iText®.
- J'aime me rendre à Devoxx pour voir ce qu'il se fait de nouveau.
- D'ailleurs j'ai créé le guide du programme de la conférence à l'aide d'iText®, en utilisant JSON et l'interface REST de Devoxx.
Que pensez-vous de developpez.com ?
- Quand j'ai écrit le premier livre, j'ai été invité en tant que guest pour répondre à des questions des forums pendant une semaine.
- J'ai en fait répondu à des questions pendant des mois car cela constituait un bon exercice pour pratiquer mon français.
- Aujourd'hui je n'ai plus le temps de suivre les questions car je dois suivre le support que nous fournissons à travers notre site.
VI. Liens▲
- Le site officiel d'iText®
- Le site du livre "iText in Action", 2ème édition
- La préface du livre "iText in action", 2ème édition
- L'histoire d'iText®
- Le projet iText sur SourceForge
- Le projet iTextSharp sur SourceForge
- Une démo pour générer des factures
- Quelques références
- Errata/Addenda du livre
- Code pour générer un guide de conférence
- Les standards PDF
- Les slides de la présentation
- Zenika
- Formation iText® proposée par Zenika et animée par Bruno Lowagie
VII. Remerciements▲
Je tiens à remercier ram-0000 pour ses conseils, remarques, relectures ainsi que pour sa correction orthographique.
Je remercie également la société Zenika pour son accueil et pour nous avoir permis de réaliser cette interview.