19
Par Jean-Marc Simard 30 mars 2010 1) Introduction Le développement de ces outils pour la création de rapports PDF a été motivée par le fait que je voulais être en mesure de produire des rapports PDF, sur la plateforme LabVIEW, et ceci, sans être obligé d'acheter une librairie. Le choix s'est arrêté sur la librairie iTextSharp et j'ai développé une série de VI me permettant de générer directement des rapports PDF sans être obligé de se procurer un produit commercial. Le but étant, si ces outils présentent un intérêt autre que pour moi, est de les mettre disponible sur le site de National Instruments. La licence choisie, soit : " la licence BSD (Berkeley software distribution license) est une licence libre utilisée pour la distribution de logiciels. Elle permet de réutiliser tout ou une partie du logiciel sans restriction, qu'il soit intégré dans un logiciel libre ou propriétaire. " Grosso modo, vous faîtes pour ainsi dire ce que vous voulez avec ces VI. 2) Installation Il faut décompresser le dossier « Exaprom PDF » et l’installer dans le répertoire : C:\Program Files\National Instruments\LabVIEW Version\user.lib\ Après avoir redémarré LabVIEW la palette suivante apparaîtra : Bien que cet ensemble d'outils pour la création de rapports PDF n'ait pas pour but de remplacer un traitement de texte, nous avons produit, à titre d'exemple, ce document avec ces derniers (en réalité il aurait été beaucoup plus facile d'utiliser un traitement de texte). Le VI "Création d'un rapport PDF.vi" est disponible dans la palette "Examples". Figure 1: Palette PDF Exaprom Outils de création de rapports PDF (avec iTextSharp 5.0) Ceci est un exemple pour les polices de caractères. Page 1 de 19

Outils de création de rapports PDF (avec iTextSharp 5.0)labview360.com/forum/forum_uploads/files/authorid3/2010... · 2010-06-10 · librairie iTextSharp et j'ai développé une

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Par Jean-Marc Simard

30 mars 2010

1) Introduction Le développement de ces outils pour la création de rapports PDF a été motivée par lefait que je voulais être en mesure de produire des rapports PDF, sur la plateformeLabVIEW, et ceci, sans être obligé d'acheter une librairie. Le choix s'est arrêté sur lalibrairie iTextSharp et j'ai développé une série de VI me permettant de générerdirectement des rapports PDF sans être obligé de se procurer un produit commercial.Le but étant, si ces outils présentent un intérêt autre que pour moi, est de les mettredisponible sur le site de National Instruments. La licence choisie, soit :

" la licence BSD (Berkeley software distribution license) est une licencelibre utilisée pour la distribution de logiciels. Elle permet de réutiliser toutou une partie du logiciel sans restriction, qu'il soit intégré dans un logiciellibre ou propriétaire. "

Grosso modo, vous faîtes pour ainsi dire ce que vous voulez avec ces VI. 2) Installation Il faut décompresser le dossier « Exaprom PDF » et l’installer dans le répertoire : C:\Program Files\National Instruments\LabVIEW Version\user.lib\ Après avoir redémarré LabVIEW la palette suivante apparaîtra :

Bien que cet ensemble d'outils pour la création de rapports PDF n'ait pas pour but deremplacer un traitement de texte, nous avons produit, à titre d'exemple, ce documentavec ces derniers (en réalité il aurait été beaucoup plus facile d'utiliser un traitement detexte). Le VI "Création d'un rapport PDF.vi" est disponible dans la palette "Examples".

Figure 1: Palette PDF Exaprom

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 1 de 19

3) Présentation simplifiée d'un rapport PDF La production d'un rapport PDF peut se diviser en quatre étapes : 1)Création d'un rapport PDF (création du document et paramètres par défauts); 2)Ajout de l'en-tête, du pied de page et du filigrane (optionnels) 3)L'écriture du rapport PDF qui consiste en l'ajout des éléments textes, des images (fichier, contrôle et panneau avant) et des tableaux; 4)La fermeture du rapport PDF. À la section 5 nous passons en revue les différents outils nécessaires à la création d'unrapport PDF.

Figure 2: "Bloc Diagram" d'un rapport

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 2 de 19

4.0 Généralités La librairie utilisée pour produire les rapports PDF est iTextSharp. Cette librairie utilisecomme unité de mesure le point pica (72 points = 25.4 mm = 1 pouce). Le système de référence (X,Y) utilisé a pour origine le coin inférieur gauche d'une page(voir la figure suivante). La zone de texte correspond à la surface de la page moins les différentes marges (zoneombrée de la figure suivante).

Figure 3: Zone de texte et origine

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 3 de 19

5) Les différentes palettes 5.1) La palette "Text" Avant de regarder les éléments de la palette Text nous allons voir comment sonttraitées les polices de caractères, l'alignement et l'interligne. Lorsque le rapport PDF a été créé, nous avons spécifié que la police par défaut (DefaultFont) était la police Arial de 12 points normale (Bold = F, Italic = F, Underline = F etStrikeout = F ) . Ces informations sont stockées dans le Xcontrol PDF Report. Lesvaleurs par défaut des polices de caractères, dans les différents VI de la la palette Text,sont : - Name = chaîne de caractères vide; - Size = -1; - Bold = F, Italic = F, Underline = F et Strikeout = F Lorsque le nom de la police de caractères est laissé vide alors c'est le nom de la policepar défaut qui est utilisé. Lorsque la valeur de la taille de la police est laissée à -1 alors c'est la taille par défautqui est utilisée. Font A : Les valeurs ne sont pas modifiées alors c'est la police de caractères pardéfaut qui est utilisée (Font A = Default Font). Font B = Arial, 12 points en gras et en italique. Font C = Arial, 14 points en gras. Font D = Calibri 12 points. Font E = Calibri 14 points.

Comme pour la police de caractères nous avons, lorsque le rapport PDF a été créé,spécifié que l’alignement par défaut était « JUSTIFY » et que l’interligne par défaut était1.0. Ces informations sont aussi stockées dans le Xcontrol PDF Report. Lorsque l’alignement est laissé à « Select » c’est l’alignement par défaut qui est utilisé.Lorsque l’interligne est laissé à « Select » c’est l’interligne par défaut qui est utilisé.

Figure 4: Polices de caractères

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 4 de 19

À la figure de la page suivante, nous avons mis les principales variables des différentsVI de "Append Text polymorphic.vi". Les règles précédemment expliquées pour lespolices de caractères, l'alignement et l'interligne s'appliquent à tous ces VI. Le premier, soit "Append Paragraph.vi" (le même que celui noté "2" à la figureprécédente), permet d'ajouter du texte sous forme de paragraphes et ce texte setermine automatiquement avec une fin de ligne (Line Feed). Le deuxième, soit "Append Paragraph (string array).vi", permet d'ajouter une séquencede paragraphes avec comme particularité qu'il est possible d'associer un lien hypertexteavec du texte, mis entre les balises <a> </a> , d'un paragraphe. Tous ces paragraphesse terminent automatiquement avec une fin de ligne (Line Feed). Le troisième, soit "Append Paragraph with Hypertext Link Anchor.vi" (le même que celuinoté "3" à la figure précédente), permet d'ajouter un lien hypertexte à des motscontenus à l'intérieur d'un paragraphe. Nous avons dans ce cas deux polices decaractères : 1) Hypertext link font qui s'applique à la chaîne de caractères du lienhypertexte et 2) Font qui s'applique au reste du texte. Le quatrième, soit "Append Phrase.vi", permet d'ajouter une phrase, mais contrairementau paragraphe cette dernière ne se termine pas avec une fin de ligne. De plus, il a pardéfaut un alignement à gauche. De plus, pour tous ces VI (sauf pour "Append Phrase.vi") il est possible de mettre undécalage à gauche et à droite du texte (paragraphe indentation).

Figure 5: Alignement et interligne

Figure 6: La palette Text et le VI "Append Text polymorphic.vi"

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 5 de 19

Figure 7: Les principales variables pour les différents VI de "Append Text polymorphic.vi"

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour les polices decaractères. Page 6 de 19

5.2) La palette "Image" Les images placées dans le document PDF peuvent être réduites ou agrandies, maisc'est uniquement une question d'affichage: elles occuperont toujours le même espacedans le fichier PDF.

La palette Image compte 3 VI : 1)"Append Image.vi"; 2)"Append Control Image.vi "; 3)"Append Front Panel Image.vi". Nous avons à la figure suivante les contrôles des propriétés de l'image (cette image aété ajoutée avec "Append Control Image.vi"). Nous pouvons réduire ou agrandir la taillede l'image (Scale percent). Dans ce cas, la taille maximale est ajustée pour que l'imageentre dans la zone de texte (page moins les différentes marges). Nous pouvons choisir la position horizontale de l'image pour autant que nous n'ayonspas ajouté de légende, car dans ce cas elle est toujours centrée horizontalement.

Les choix disponibles sont:1) Absolute (X,Y) in mm;2) Left;3) Center;4) Right;5) Left (textwrap)6) Right (textwrap)."Left (textwrap)" signifie que l'image est placée àgauche et que le corps du texte se place à droite

alors que "Right (textwrap)" indique que l'image est placée à droite et que le corps dutexte se place à gauche. L'indentation s'applique uniquement au "textwrap", c'estl'espace horizontal que nous laissons entre l'image et le texte. Nous pouvons aussichoisir de mettre une bordure à l'image.

Figure 8: Les VI pour insérer des images dans le documents PDF (cette image a étéajoutée avec "Append Image.vi")

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 7 de 19

Figure 9: Image de la face avant (ajouté avec "Append Front Panel Image.vi")

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour les polices decaractères. Page 8 de 19

5.3) La palette "Table" L'ajout d'un tableau se fait en deux étapes : premièrement, il faut créer le tableau avec"Create Table.vi" et ensuite ajouter les données avec "Append Table.vi ".

Pour créer un tableau, il y a trois variables : 1)Table properties; 2)numColumn; 3)columnWidht [ ]. La première permet d'ajuster la position du tableau. La deuxième permet de spécifier lenombre de colonnes du tableau alors que la troisième permet de spécifier la largeur dechaque colonne. Si la variable "columnWidht (mm)" n'est pas connectée alors la largeur de chaquecolonne sera identique et égale à la largeur de la zone de texte divisée par numColumn

Figure 10: Les deux VI pour créer un tableau

Figure 11: Création d'un tableau

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 9 de 19

(tableau 1 versus tableau 2). Si la variable "columWidth (mm)" a plus d'éléments que de nombre de colonnes alorsseulement les premiers éléments seront conservés (i = 0 à i = (numColumn -1) ) . Si la variable "columWidth (mm)" a moins d'éléments que de nombre de colonnes alorsdes colonnes de 25 mm seront ajoutées.

Si la largeur totale du tableau est plus grande que la largeur de la zone de texte alors lalargeur de chaque colonne sera proportionnellement réduite afin que la largeur dutableau égale la largeur de la zone de texte.

Comme pour les images, nous pouvons choisir la position horizontale pour autant quenous n'ayons pas ajouté de légende (Caption), car dans ce cas le tableau est toujourscentré horizontalement.

Figure 12: Les différentes variables pour la création d'un tableau

Figure 13: Les différents variables pour ajouter les données au tableau

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 10 de 19

Nous pouvons ajouter des titres aux colonnes d'un tableau et ceux apparaîtront surchaque nouvelle page (si le tableau fait plus d'une page). Il est possible de définir unformat pour le texte des titres (Title properties) et pour les données du tableau (Datasproperties). Les données d'un tableau que l'on connecte à "Append Table.vi" sont duformat texte.

Tableau 1: Exemple d'un tableau avec la variable "columnWidth [ ]" non connectée

Heure Thermocouple 1(°C)

Thermocouple 2(°C)

Thermocouple 3(°C)

09:59:42 214.8 212.3 216.109:59:52 215.0 212.4 217.810:00:02 215.0 212.0 217.710:00:12 214.1 211.6 217.210:00:22 214.2 212.6 217.310:00:32 214.6 212.5 217.810:00:42 214.6 212.5 217.810:00:52 214.8 212.5 216.310:01:02 215.6 211.7 216.710:01:12 214.6 211.1 218.0

Tableau 2: Exemple d'un tableau avec la variable "columnWidth [ ]" connectée

Heure Thermocouple 1(°C)

Thermocouple 2(°C)

Thermocouple 3(°C)

09:59:42 214.8 212.3 216.109:59:52 215.0 212.4 217.810:00:02 215.0 212.0 217.710:00:12 214.1 211.6 217.210:00:22 214.2 212.6 217.310:00:32 214.6 212.5 217.810:00:42 214.6 212.5 217.810:00:52 214.8 212.5 216.310:01:02 215.6 211.7 216.710:01:12 214.6 211.1 218.0

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 11 de 19

5.4) La palette "Document" La palette Document est constituée de 6 VI : a)New PDF.vi;b)Close PDF.vi;c)Append New Page.vi;d)Set Page Size.vi;e)Set Default Font.vi;f)Print PDF.vi.

a) Création d'un nouveau rapport PDF avec "New PDF.vi" La première étape consiste à créer un nouveau rapport PDF. Les variables de cerapport sont : i)les intitulés génériques pour les légendes (Captions) des figures et tableaux; ii)le répertoire ou le nom du fichier (chemin complet) à utiliser; iii)le format de la page; iv) l'unité utilisée; v)les métadonnées du fichier PDF créé; vi)la police de caractère par défaut du document; vii)l'interligne et l"alignement par défaut du document.

Figure 14: Les VI de la palette "Document"

Figure 15: Variables pour la création d'un nouveau rapport

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 12 de 19

i) Les intitulés génériques pour les légendes (Captions) Vous pouvez spécifier un intitulé générique pour les légendes des figures et detableaux. Si vous écrivez dans Image.Caption "Figure " et dans Image.Separator ": "alors à chaque image (ou tableau) à laquelle vous ajouterez une légende, il sera écritdans le document PDF : "Figure 1: Légende de la figure 1", "Figure 2: Légende de lafigure 2" et ainsi de suite. La numérotation est automatique. ii) Le répertoire ou le nom du fichier (File or Directory path) Vous pouvez spécifier seulement le répertoire dans lequel le fichier sera créé. Dans cecas une boîte de dialogue apparaîtra, lorsque le programme tournera, vous demandantle nom du fichier à utiliser. iii) Le format de la page (Page Setup) Vous choisissez le format de la page (prédéfini ou non), l'orientation et les marges. Sile format choisi est " Custom" alors vous devez spécifier la largeur X(mm) et la hauteurY(mm). Ce format sera utilisé dans le document tant que vous ne modifierez pas leformat de la page. iv) L'unité utilisée (Unit (default = mm)) L'unité de base utilisée dans le rapport PDF (millimètre ou pouce) v) Les métadonnées du fichier PDF (PDF Details) Ce sont les métadonnées que vous voyez lorsque vous regardez les propriétés dufichier PDF que vous avez créé (à l'onglet PDF).

Figure 16: Les différents contrôles pour la création d'un rapport

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 13 de 19

vi) La police de caractère par défaut (Default Font) C'est la police de caractère (nom, couleur, dimension et style) utilisée dans le documentlorsqu'aucune autre police n'est spécifiée. Le nom de la police est une chaîne decaractères. Les polices disponibles sont celles apparaissant dans le répertoire "C:\Windows\Fonts ". Si vous indiquez une police qui n'est pas disponible ou malorthographiée alors la police de caractères " Helvetica " y sera substituée. vii) L'interligne et l'alignement du texte Vous avez le choix des interlignes 1.0, 1.5 et 2.0. L'alignement du texte peut être :centré, justifié (justify), gauche ou droit. b) Fermeture du rapport PDF avec "Close PDF.vi" Ce VI permet de compléter l'écriture du rapport PDF. Il ferme les différentes référencesnécessaires à l'écriture d'un fichier PDF, il écrit l'en-tête, le pied de page et le filigrane(si nécessaires) et il ferme le fichier PDF. c) Ajout d'un saut de page avec "Append New Page.vi" Ce VI ajoute un saut de page au document PDF.

Figure 17: Les métadonnées (PDF Details)

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 14 de 19

d) Ajout d'un saut de section (nouvelle page) en changeant les propriétés de la pageavec "Set Page Size.vi" Ce VI ajoute un saut de page au document PDF et permet de changer les propriétés dela nouvelle page. Ces nouvelles propriétés s'appliquent à toute nouvelle page et cecitant que vous n'utilisez pas de nouveau le VI "Set Page Size.vi". e) Changer la police de caractères par défaut avec "Set Default Font.vi" Ce VI change la police de caractères par défaut. f) Impression du rapport PDF avec "Print PDF.vi" Ce VI permet d'imprimer le rapport PDF. Ce VI n'est pas basé sur la librairie iTextSharp.

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 15 de 19

5.5) La palette "en-tête, pied de page et filigrane" L'en-tête, le pied de page et le filigrane peuvent être ajoutés à n'importe quel endroit dela création du rapport, car ils sont seulement écrits lors de la fermeture du document.Pour des raisons de clarté, nous les plaçons immédiatement après la création dunouveau rapport PDF. Un en-tête ou un pied de page est constitué d'un tableau d'une ligne et d'aux maximumtrois colonnes de largeurs identiques. Le nombre d'éléments ajoutés à un en-tête ou unpied de page (texte, image ou numéro de page) fournit le nombre de colonnes dutableau. La largeur totale de l'en-tête (ou du pied de page) est celle de la zone de texte (largeurde la page moins la marge gauche moins la marge droite). Pour la hauteur de l'en-tête(ou du pied de page) nous prenons la marge considérée (supérieure ou inférieure)moins 10 mm. L'en-tête ou le pied de page est donc centré verticalement dans lamarge considérée à 5 mm de la zone de texte et à 5 mm du bord de la feuille.

Les blocs de l'en-tête ou du pied de page s'ajoutent avec le VI " Header or Footerpolymorphic.vi " et le filigrane avec " Append Watermark.vi ".

Figure 18: Position de l'en-tête ou du pied de page

Figure 19: Palette Header, Footer et Watermark

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 16 de 19

L'en-tête Dans la figure précédente, nous constatons que nous avons ajouté un seul bloc à l’en-tête (Header). Il s’ensuit que nous aurons un tableau constitué d’une seule colonne. Sinous regardons le contrôle « Header Text », nous pouvons voir que les variables sontles suivantes : - Start Page (à quelle page apparaît ce bloc de l’entête); - Text (le texte en question : Outils de création de rapports PDF…); - Link (lien hypertexte facultatif - http://itextsharp.sourceforge.net/ ); - l'alignement vertical et horizontal (« CENTER-top » est sélectionné); - la police de caractère (Arial, 14 points en gras). De plus, nous avons la possibilité d’ajouter une ligne horizontale pour séparer l’en-têteou le pied de page de la zone de texte.

Le pied de page Nous avons ajouté trois blocs au pied de page (Footer). Il s’ensuit que nous aurons untableau constitué de trois colonnes. L’ajout des blocs se fait de gauche à droite : - le premier bloc ajouté, le bloc « Text » se met à gauche; - le deuxième bloc ajouté, le bloc « Image » se met au centre; - et le dernier bloc ajouté, le bloc « Page # » se met à droite.

Figure 20: Insertion des en-tête, pied de page et filigrane

Figure 21: Ligne de séparation et bloc Text de l'en-tête

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 17 de 19

Dans tous les cas, nous devons spécifier à quelle page apparaît ce bloc et l’alignementvertical et horizontal. Le lien hypertexte reste toujours facultatif. Si une image est tropgrande pour entrer dans l’espace prévu alors ses dimensions seront automatiquementréduites.

Le filigrane Le premier élément du contrôle Filigrane est l'élément général, il est constitué : -du type (Text, Tex auto et Image); -de l'opacité (Opacity(%)); -de l'angle de rotation (Rotate (°)) -de la position (Absolute, Center on page et Center on text section); -de la position absolue (X(mm) et Y(mm)). Le type définit l'élément que nous ajoutons (Text, Tex auto et Image). Dans le cas de"Text auto", l'angle de rotation est automatiquement calculé pour que le texte se placedans la diagonale de la zone considérée (la page entière ou la zone de texte) et la tailledes caractères est maximisée. Étant donné que le filigrane se place en premier plan, il faut spécifier son opacité.Lorsque l'on sélectionne " Text " ou " Image ", nous pouvons spécifier la rotation de lazone de texte ou de l'image. La position " Absolute " s'applique seulement au type " Text " ou " Image ". Lorsquecette position est sélectionnée alors le point (0,0) est le coin inférieur gauche de lapage.

Figure 22: Bloc Text du pied de page

Figure 23: Bloc Image du pied de page

Figure 24: Bloc numéro de page du pied de page

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 18 de 19

Pour le filigrane, il n'est pas possible de modifier le style d'une police de caractères(bold, italic, underline et strikeout).

Figure 25: Contrôle pour le filigrane (watermark)

Outils de création de rapports PDF(avec iTextSharp 5.0)

Ceci est un exemple pour lespolices de caractères. Page 19 de 19