APIs d'export en PDF

Les étapes de création d'un document PDF

I. Création d'un objet Document

L'objet Document a 3 constructeurs:

public Document();
public Document(Rectangle pageSize);
public Document(Rectangle pageSize, int marginLeft, int marginRight, int marginTop, int marginBottom);

Le premier constructeur appelle le second avec comme paramètre: PageSize.A4
Le deuxième constructeur appelle le troisième avec pour valeur de marge 36.

Il est possible de créer son propre rectangle afin de définir la taille de notre document et ainsi d'y rajouter une couleur de fond.
Cependant, plusieurs tailles sont acessibles de manière statique sur l'objet PageSize comme: A0-A10, LEGAL, LETTER, HALFLETTER, _11x17, LEDGER, NOTE, B0-B5


II. Création d'un objet Writer

Une fois que le document est créé, il est possible de déclarer plusieurs writers qui écoute sur celui-ci. Ces writers permettent de définir quel type de document nous souhiatons créer. Il en existe 2 types :

Le constructeur de ces classes sont privées. Il est donc uniquement possible d'instancier un objet xxxWriter par l'intermédiaire de cette méthode:
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
ou
HtmlWriter writer = HtmlWriter.getInstance(document, new FileOutputStream("HelloWorld.html"));

L'objet "writer" créé n'est utile que pour des options avancées de la création de documents PDF, des fonctionnalités de cryptage et de visualisation. C'est pourquoi il n'est pas nécessaire de créer cette objet mais simplement de d'obtenir une instance comme ceci:
PdfWriter.getInstance(document, new FileOutputStream("HelloWorld.pdf"));
ou
HtmlWriter.getInstance(document, new FileOutputStream("HelloWorld.html"));

III. Renseignement des metadata du document

Avant d'ajouter des données à notre document, il est possible d'ajouter des metadata à celui-ci à l'aide des méthodes suivantes:

public boolean addTitle(String title)
public boolean addSubject(String subject)
public boolean addKeywords(String keywords)
public boolean addAuthor(String author)
public boolean addCreator(String creator)
public boolean addProducer()
public boolean addCreationDate()
public boolean addHeader(String name, String content)
Il est possible d'ajouter des metadata au document uniquement avant que celui-ci soit ouvert.

IV. Préférences de visualisation

Pour la création de fichier PDF, il est possible de définir les préférences de visualisation à l'aide de la méthode suivante:

public void setViewerPreferences(int preferences)

Définition du layout du document: PdfWriter.HideToolBar: Un flag permettant de spécifier si l'on doit cacher la barre d'outil dans l'application de visualisation PdfWriter.HideMenuBar: Un flag permettant de spécifier si l'on doit cacher la barre de menu dans l'application de visualisation PdfWriter.HideWindowUI: Un flag permettant de spécifier si l'on doit cacher l'interface utilisateur (comme la scrollbar, les controles de navigation, etc...).

V. Cryptage

Une autre chose à faire avant l'ouverture du document est le cryptage. La méthode suivante permet de définir le cryptage désiré

public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);


VI. Ajout du contenu à notre document

voir le chapitre sur les objets de l'API

Valid HTML 4.01!