Outils pour utilisateurs

Outils du site


issue50:tutopython

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue50:tutopython [2011/08/03 22:28] fredphil91issue50:tutopython [2011/08/07 08:31] (Version actuelle) fredphil91
Ligne 1: Ligne 1:
-in twips 
- 
- 
- 
- 
- 
- 
- 
 **WOW! It's hard to believe that this is the 24th issue already. Two years we've been learning Python! You've come a very long way. **WOW! It's hard to believe that this is the 24th issue already. Two years we've been learning Python! You've come a very long way.
  
Ligne 19: Ligne 11:
 Waouh ! Il est difficile de croire que ceci est déjà le 24ème numéro. Cela fait deux ans que nous apprenons le Python ! Vous avez parcouru un très long chemin. Waouh ! Il est difficile de croire que ceci est déjà le 24ème numéro. Cela fait deux ans que nous apprenons le Python ! Vous avez parcouru un très long chemin.
  
-Cette fois, nous allons couvrir deux sujets. Le premier est l'impression sur une imprimante, le second est la création de fichiers RTF (Rich Text Format, ou Format de Texte Riche) comme sortie.+Cette fois-ci, nous allons traiter deux sujets. Le premier est l'impression sur une imprimante, le second est la création de fichiers RTF (Rich Text Format, ou Format de Texte Riche) comme sortie.
  
 Impression générique sous Linux Impression générique sous Linux
  
-Commençons donc avec l'impression sur une imprimante. L'idée de parler de cela provenait d'un courriel envoyé par Gord Campbell. Il est réellement facile de faire la plupart des impressions depuis Linux, et plus facile qu'avec cet autre système d'exploitation qui commence par « WIN » - et dont je ne parlerai pas.+Commençons donc avec l'impression sur une imprimante. L'idée de parler de cela provenait d'un courriel envoyé par Gord Campbell. Il est réellement facile de faire la plupart des impressions depuis Linux plus facile qu'avec cet autre système d'exploitation qui commence par « WIN » - et dont je ne parlerai pas.
  
-Tout est plutôt simple tant que vous ne souhaitez imprimer que du texte simple, sans gras, italique, changements de polices, etc. Voici une application simple qui permet d'imprimer directement sur votre imprimante ...+Tout est plutôt facile tant que vous ne souhaitez imprimer que du texte simple, sans gras, italique, changements de polices, etc. Voici une application simple qui permet d'imprimer directement sur votre imprimante ...
  
 **import os  **import os 
Ligne 47: Ligne 39:
 We can also create a text file, then send it out to the printer like this...** We can also create a text file, then send it out to the printer like this...**
  
-C'est assez facile à comprendre si vous élargissez un peu votre esprit. Dans le code ci-dessus, 'lprest le spooler d'impression. La seule exigence est que nous ayons déjà configuré 'lpdet qu'il fonctionne. C'est très probablement déjà fait pour vous si vous utilisez une imprimante sous Ubuntu. 'Lpd' est généralement considéré comme un « filtre magique » qui permet de convertir automatiquement différents types de documents en quelque chose que l'imprimante peut comprendre. Nous allons imprimer sur le périphérique/objet 'lpr'. Pensez-y comme à un simple fichier. Nous ouvrons le fichier ; nous devons importer 'os'. Puis à la ligne 2, nous avons ouvert « lpr » avec un accès en écriture, en l'assignant à la variable objet 'pr'. Nous procédons alors à une écriture « pr.write » avec tout ce que nous voulons imprimer. Enfin (ligne 5), nous fermons le fichier ce qui va envoyer les données vers l'imprimante.+C'est assez facile à comprendre si vous élargissez un peu votre esprit. Dans le code ci-dessus, « lpr » est le spooler d'impression. Le seul pré-requis est que nous ayons déjà configuré « lpd » et qu'il fonctionne. C'est très probablement déjà fait pour vous si vous utilisez une imprimante sous Ubuntu. « lpd » est généralement considéré comme un « filtre magique » qui permet de convertir automatiquement différents types de documents en quelque chose que l'imprimante peut comprendre. Nous allons imprimer sur le périphérique/objet « lpr ». Pensez-y comme à un simple fichier. Nous ouvrons le fichier ; nous devons importer « os ». Puis à la ligne 2, nous avons ouvert « lpr » avec un accès en écriture, en l'assignant à la variable objet « pr ». Nous procédons alors à une écriture « pr.write » avec tout ce que nous voulons imprimer. Enfin (ligne 5), nous fermons le fichier ce qui va envoyer les données vers l'imprimante.
  
 Nous pouvons également créer un fichier texte puis l'envoyer à l'imprimante comme ceci... Nous pouvons également créer un fichier texte puis l'envoyer à l'imprimante comme ceci...
Ligne 62: Ligne 54:
  
   import os   import os
-  filename = 'dummy.file+  filename = 'fichier.bidon'
   os.system('lpr %s' % filename)   os.system('lpr %s' % filename)
  
-Dans ce cas, nous utilisons toujours l'objet lpr mais avec la commande os.system qui sert simplement à envoyer à Linux une commande comme si on l'avait saisie depuis un terminal.+Dans ce cas, nous utilisons toujours l'objet lpr mais avec la commande « os.system » qui sert simplement à envoyer à Linux une commande comme si on l'avait saisie depuis un terminal.
  
 Je vous laisserai vous amuser un peu avec cela. Je vous laisserai vous amuser un peu avec cela.
Ligne 77: Ligne 69:
 pyRTF pyRTF
  
-Maintenant occupons-nous des fichiers RTF. Le format RTF (c'est comme quand on dit le numéro PIN puisque PIN signifie Numéro d'Identification Personnel et que ça revient à dire le Numéro Numéro d'Identification Personnel [Ndt : en français on n'a pas ce problème de redondance puisqu'on parle de code PIN] : ça dépend du département Département des Redondances, non ?) a été créé à l'origine par Microsoft en 1987et sa syntaxe s'est inspirée du langage TeX. PyRTF est une merveilleuse bibliothèque qui facilite la création de fichiers RTF. Cela nécessite de réfléchir en amont à ce à quoi le fichier doit ressembler, mais le résultat en vaut vraiment la peine.+Maintenant occupons-nous des fichiers RTF. Le format RTF (c'est comme quand on dit le numéro PIN puisque PIN signifie Numéro d'Identification Personnel et que ça revient à dire le Numéro Numéro d'Identification Personnel [Ndt : en français on n'a pas ce problème de redondance puisqu'on parle de code PIN] : ça dépend du département Département des Redondances, non ?) a été créé à l'origine par Microsoft en 1987 et sa syntaxe s'est inspirée du langage de composition de texte TeX. PyRTF est une merveilleuse bibliothèque qui facilite la création de fichiers RTF. Cela nécessite de réfléchir en amont à ce à quoi le fichier doit ressembler, mais le résultat en vaut vraiment la peine.
  
 Tout d'abord il faut télécharger et installer le paquet pyRTF. Allez sur http://pyrtf.sourceforge.net et récupérez le paquet PyRTF-0.45.tar.gz. Sauvegardez-le quelque part et utilisez le gestionnaire d'archives pour le décompresser. Puis ouvrez un terminal et déplacez-vous à l'endroit où vous l'avez décompressé. Tout d'abord il faut installer le paquet, avec la commande « sudo python setup.py install ». Remarquez qu'il y a un répertoire d'exemples, qui contient de bonnes informations pour faire des choses un peu compliquées. Tout d'abord il faut télécharger et installer le paquet pyRTF. Allez sur http://pyrtf.sourceforge.net et récupérez le paquet PyRTF-0.45.tar.gz. Sauvegardez-le quelque part et utilisez le gestionnaire d'archives pour le décompresser. Puis ouvrez un terminal et déplacez-vous à l'endroit où vous l'avez décompressé. Tout d'abord il faut installer le paquet, avec la commande « sudo python setup.py install ». Remarquez qu'il y a un répertoire d'exemples, qui contient de bonnes informations pour faire des choses un peu compliquées.
Ligne 91: Ligne 83:
 Nous y voilà. Commençons comme d'habitude en créant le canevas de notre programme que vous pouvez voir en haut à droite de la page suivante. Nous y voilà. Commençons comme d'habitude en créant le canevas de notre programme que vous pouvez voir en haut à droite de la page suivante.
 Avant d'aller plus loin, parlons de ce qui se passe. La ligne 2 importe la bibliothèque pyRTF. Remarquez que nous utilisons un format d'importation différent des autres fois : cette fois-ci nous importons tout ce qui se trouve dans la biblothèque. Avant d'aller plus loin, parlons de ce qui se passe. La ligne 2 importe la bibliothèque pyRTF. Remarquez que nous utilisons un format d'importation différent des autres fois : cette fois-ci nous importons tout ce qui se trouve dans la biblothèque.
-Notre routine principale s'appelle FabriqueExempleet ne fait rien pour le moment. La routine OuvreFichier crée un fichier avec pour nom celui passé en argument,  lui ajoute l'extension .rtf, le place en mode écriture et retourne un pointeur sur ce fichier.+Notre routine principale s'appelle FabriqueExemple et ne fait rien pour le moment. La routine OuvreFichier crée un fichier avec pour nom celui passé en argument, lui ajoute l'extension .rtf, le place en mode écriture et retourne un pointeur sur ce fichier.
  
-Nous avons déjà parlé de la routine <nowiki>__name__</nowiki> précédemment, mais pour vous rafraîchir la mémoire je vous rappelle que si nous exécutons le programme en mode autonome la variable interne <nowiki>__name__</nowiki> est réglée à « <nowiki>__main__</nowiki> » ; par contre si on l'appelle comme « import » depuis un autre programme, cette portion de code sera ignorée.+Nous avons déjà parlé de la routine <nowiki>__name__</nowiki> précédemment, mais pour vous rafraîchir la mémoire je vous rappelle que si nous exécutons le programme en mode autonome la variable interne <nowiki>__name__</nowiki> est réglée à « <nowiki>__main__</nowiki> » ; par contresi on l'appelle comme « import » depuis un autre programme, cette portion de code sera ignorée.
  
 Nous créons là une instance de l'objet Renderer, appelons la routine FabriqueExemple et récupérons l'objet retourné docu. Puis nous écrivons le fichier (docu) en utilisant la routine OuvreFichier. Nous créons là une instance de l'objet Renderer, appelons la routine FabriqueExemple et récupérons l'objet retourné docu. Puis nous écrivons le fichier (docu) en utilisant la routine OuvreFichier.
Ligne 107: Ligne 99:
 Passons maintenant au contenu de la routine principale FabriqueExemple. Remplacez l'instruction pass par le code ci-dessous. Passons maintenant au contenu de la routine principale FabriqueExemple. Remplacez l'instruction pass par le code ci-dessous.
  
-Regardons ce que nous avons fait. La première ligne crée une instance de Document. Puis on crée une instance de feuille de style. Ensuite nous créons une instance de l'objet section et on l'ajoute au document. Imaginez une section comme un chapitre dans un livre. Ensuite nous créons un paragraphe en utilisant le style Normal. L'auteur de pyRTF a préréglé ce style avec une police Arial en 11 points. Ensuite on écrit le texte qu'on veut dans ce paragraphe, on l'ajoute à la section et on retourne notre document docu.+Regardons ce que nous avons fait. La première ligne crée une instance de document. Puis on crée une instance de feuille de style. Ensuite nous créons une instance de l'objet section et on l'ajoute au document. Imaginez une section comme un chapitre dans un livre. Ensuite nous créons un paragraphe en utilisant le style Normal. L'auteur de pyRTF a préréglé ce style avec une police Arial en 11 points. Ensuite on écrit le texte qu'on veut dans ce paragraphe, on l'ajoute à la section et on retourne notre document docu.
  
 C'est vraiment facile. Encore une fois, vous devez réfléchir soigneusement en amont à la sortie désirée, mais ce n'est pas très compliqué. C'est vraiment facile. Encore une fois, vous devez réfléchir soigneusement en amont à la sortie désirée, mais ce n'est pas très compliqué.
  
-Sauvegardez ce programme « rtftesta.py » et exécutez-le. Enfin, utilisez OpenOffice (ou LibreOffice) pour ouvrir le fichier et l'examiner.+Sauvegardez ce programme en tant que « rtftesta.py » et exécutez-le. Enfin, utilisez OpenOffice (ou LibreOffice) pour ouvrir le fichier et l'examiner.
  
 **Now let's do some neat things. First, we'll add a header. Once again, the author of PyRTF has given us a predefined style called Header1. We'll use that for our header. In between the doc.Sections.append line and the p = Paragraph line, add the following.  **Now let's do some neat things. First, we'll add a header. Once again, the author of PyRTF has given us a predefined style called Header1. We'll use that for our header. In between the doc.Sections.append line and the p = Paragraph line, add the following. 
Ligne 128: Ligne 120:
  
   p = Paragraph(ss.ParagraphStyles.Heading1)   p = Paragraph(ss.ParagraphStyles.Heading1)
-  p.append('Exemple d''en-tete')+  p.append('Exemple d'en-tete')
   section.append(p)   section.append(p)
  
Ligne 143: Ligne 135:
 It is also possible to provide overrides for elements of a style. For example you can change just the font size to 24 point or typeface to Impact or even more Attributes like BOLD or Italic or BOTH.** It is also possible to provide overrides for elements of a style. For example you can change just the font size to 24 point or typeface to Impact or even more Attributes like BOLD or Italic or BOTH.**
  
-Sauvegardez-le sous le nom rtftestb.py et exécutez-le. Maintenant nous avons un en-tête. Je suis sûr que votre esprit est en train de se demander tout ce qu'on peut faire encore. Voici une liste des styles prédéfinis que l'auteur nous fourni.+Sauvegardez-le sous le nom rtftestb.py et exécutez-le. Maintenant nous avons un en-tête. Je suis sûr que votre esprit est en train de se demander tout ce qu'on peut faire encore. Voici une liste des styles prédéfinis que l'auteur nous fournit.
  
 Normal, Normal Short, Heading 1, Heading 2, Normal Numbered, Normal Numbered 2. Il y a également un style List que je vous laisserai découvrir. Si vous voulez en voir davantage, sur ça et sur d'autres sujets, les styles sont définis dans le fichier Elements.py que vous avez installé tout à l'heure. Normal, Normal Short, Heading 1, Heading 2, Normal Numbered, Normal Numbered 2. Il y a également un style List que je vous laisserai découvrir. Si vous voulez en voir davantage, sur ça et sur d'autres sujets, les styles sont définis dans le fichier Elements.py que vous avez installé tout à l'heure.
  
-Ces styles prédéfinis sont utile pour beaucoup de choses, mais on peut avoir besoin d'en créer d'autres. Voyons maintenant comment modifier les polices, leur taille et leurs attributs (gras, italique, etc.) à la volée. Après notre paragraphe, et avant de retourner l'objet document, insérez le code ci-dessus à droite et modifiez le nom du fichier de sortie en rtftestc. Sauvegardez le fichier sous le nom rtftestc.py et exécutez-le. La nouvelle portion du documennt revrait ressembler à ceci...+Ces styles prédéfinis sont utiles pour beaucoup de choses, mais on peut avoir besoin d'en créer d'autres. Voyons maintenant comment modifier les polices, leur taille et leurs attributs (gras, italique, etc.) à la volée. Après notre paragraphe, et avant de retourner l'objet document, insérez le code ci-dessus à droite et modifiez le nom du fichier de sortie en rtftestc. Sauvegardez le fichier sous le nom rtftestc.py et exécutez-le. La nouvelle portion du document revrait ressembler à ceci...
  
 Il est également possible de passer outre les éléments d'un style. Par exemple vous pouvez modifier seulement la taille de la police à 24 points, ou son type à Impact ou même modifier d'autres attributs comme la graisse ou l'italique ou les deux. Il est également possible de passer outre les éléments d'un style. Par exemple vous pouvez modifier seulement la taille de la police à 24 points, ou son type à Impact ou même modifier d'autres attributs comme la graisse ou l'italique ou les deux.
Ligne 159: Ligne 151:
 We can also set the color of the text within the TEXT inline command. Like this.** We can also set the color of the text within the TEXT inline command. Like this.**
  
-Bon, qu'avons-nous fait ? La ligne 1 crée un nouveau paragraphe. On commence comme auparavant à l'ajouter au texte. Regardez la ligne 4 (TEXT(' taille de la police a 24 points', size=48),) : en utilisant le qualificatif TEXT on indique à pyRTF qu'il faut faire quelque chose de différent au milieu de la phrase, dans ce cas on modifie la taille de la police (Arial) à 24 points, en précisant à la suite la commande «  size = ». Mais attendez une minute : on indique 48 comme taille alors qu'on veut écrire en 24 points ; et la sortie est réellement en 24 points. Que se passe-t-il ici ? Eh bien la commande de taille est en demi-points ; ainsi si on veut écrire en police 8 points, on doit utiliser « size = 16 ». Vous comprenez ?+Bon, qu'avons-nous fait ? La ligne 1 crée un nouveau paragraphe. On commence comme auparavant à l'ajouter au texte. Regardez la ligne 4 (TEXT(' taille de la police a 24 points', size=48),) : en utilisant le qualificatif TEXT on indique à pyRTF qu'il faut faire quelque chose de différent au milieu de la phrase, dans ce cas on modifie la taille de la police (Arial) à 24 points, en précisant à la suite la commande «  size = ». Mais attendez une minute : on indique 48 comme taille alors qu'on veut écrire en 24 points ; et la sortie est réellement en 24 points. Que se passe-t-il ici ? Eh bienla commande de taille est en demi-points ; ainsi si on veut écrire en police 8 points, on doit utiliser « size = 16 ». Vous comprenez ?
  
 Ensuite, on continue le texte et on modifie la police avec la commande « font = ». Cette fois encore, tout ce qui est dans l'instruction en ligne TEXT entre les guillemets sera affecté, mais pas le reste. Ensuite, on continue le texte et on modifie la police avec la commande « font = ». Cette fois encore, tout ce qui est dans l'instruction en ligne TEXT entre les guillemets sera affecté, mais pas le reste.
Ligne 193: Ligne 185:
 So now you must be thinking that this is all well and good, but how do we make our own styles? That's pretty easy. Move to the top of our file, and before our header line, add the following code.** So now you must be thinking that this is all well and good, but how do we make our own styles? That's pretty easy. Move to the top of our file, and before our header line, add the following code.**
  
-Remarquez que nous n'avons pas eu à repréciser que le style de paragraphe est Normal, puisqu'il ne change pas tant qu'on ne lui dit pas. Remarquez également que si vous habitez aux États-Unis vous devez utiliser la bonne orthographe pour « Colours » [Ndt : les américains utilisent souvent l'orthographe impropre Color].+Remarquez que nous n'avons pas eu à repréciser que le style de paragraphe est Normal, puisqu'il ne change pas tant qu'on ne lui dit pas. Remarquez également que si vous habitez aux États-Unis vous devez utiliser la bonne orthographe pour « Colours » [Ndt : les américains utilisent souvent l'orthographe « impropre » Color].
  
 Voici les couleurs prédéfinies : Black, Blue, Turquoise, Green, Pink, Red, Yellow, White, BlueDark, Teal, GreenDark, Violet, RedDark, YellowDark, GreyDark et Grey. Voici les couleurs prédéfinies : Black, Blue, Turquoise, Green, Pink, Red, Yellow, White, BlueDark, Teal, GreenDark, Violet, RedDark, YellowDark, GreyDark et Grey.
Ligne 199: Ligne 191:
 Et voici une liste de toutes les polices prédéfinies (ce sont les notations pour les utiliser) : Et voici une liste de toutes les polices prédéfinies (ce sont les notations pour les utiliser) :
  
-Arial, ArialBlack, ArialNarrow, BitstreamVeraSans, BitstreamVeraSerif, BookAntiqua, BookmanOldStyle, BookmanOldStyle, Castellar, CenturyGothic, ComicSansMS, CourierNew, FranklinGothicMedium, Garamond, Georgia, Haettenschweiler, Impact, LucidaConsole, LucidaSansUnicode, MicrosoftSansSerif, PalatinoLinotype, MonotypeCorsiva, Papyrus, Sylfaen, Symbol, Tahoma, TimesNewRoman, TrebuchetMS et Verdana.+Arial, ArialBlack, ArialNarrow, BitstreamVeraSans, BitstreamVeraSerif, BookAntiqua, BookmanOldStyle, Castellar, CenturyGothic, ComicSansMS, CourierNew, FranklinGothicMedium, Garamond, Georgia, Haettenschweiler, Impact, LucidaConsole, LucidaSansUnicode, MicrosoftSansSerif, PalatinoLinotype, MonotypeCorsiva, Papyrus, Sylfaen, Symbol, Tahoma, TimesNewRoman, TrebuchetMS et Verdana.
  
 Maintenant vous devez penser que tout cela est bien joli, mais comment peut-on créer ses propres styles ? C'est assez simple. Retournez en haut de notre fichier et ajoutez le code qui suit avant la ligne d'en-tête. Maintenant vous devez penser que tout cela est bien joli, mais comment peut-on créer ses propres styles ? C'est assez simple. Retournez en haut de notre fichier et ajoutez le code qui suit avant la ligne d'en-tête.
Ligne 272: Ligne 264:
 Souvent, la seule manière de présenter correctement des données dans un document est d'utiliser un tableau. Faire des tableaux dans un texte est plutôt difficile, mais PARFOIS c'est plutôt facile avec pyRTF. J'expliquerai cela plus tard dans cet article. Souvent, la seule manière de présenter correctement des données dans un document est d'utiliser un tableau. Faire des tableaux dans un texte est plutôt difficile, mais PARFOIS c'est plutôt facile avec pyRTF. J'expliquerai cela plus tard dans cet article.
  
-Regardons un tableau standard (ci-dessous) dans OpennOffice/LibreOffice. Cela ressemble à une feuille de calcul, où tout est placé dans des colonnes.+Regardons un tableau standard (ci-dessous) dans OpenOffice/LibreOffice. Cela ressemble à une feuille de calcul, où tout est placé dans des colonnes.
  
 Des lignes horizontales, et des colonnes verticales. Un concept simple. Des lignes horizontales, et des colonnes verticales. Un concept simple.
Ligne 317: Ligne 309:
 table.AddRow(c1,c2,c3)** table.AddRow(c1,c2,c3)**
  
-Cette ligne (oui, il ne s'agit que d'une ligne, mais découpée pour plus de clarté) crée noter tableau basique. Nous créons un tableau à trois colonnes, la première contient 7 cases, les deux suivantes en contiennent 3. Nous n'avons pas à nous préoccuper des cases isolées, car on pourra saisir les largeurs in twips. Nous y revieendrons dans un moment.+Cette ligne (oui, il ne s'agit que d'une ligne, mais découpée pour plus de clarté) crée notre tableau basique. Nous créons un tableau à trois colonnes, la première contient 7 cellules, les deux suivantes en contiennent 3. Nous n'avons pas que des cellules uniques à notre disposition, car on pourra saisir les largeurs en « twips » [Ndt : ce sont des unités de mesure, utilisées en LibreOffice et pour le RTF, équivalentes à 1/1440 d'un pouce (2,54 cm). CF http://en.wikipedia.org/wiki/Twip#In_computing.Nous y reviendrons dans un moment.
  
-  c1 = Cell(Paragraph('ligne 1, case 1')) +  c1 = Cell(Paragraph('ligne 1, cellule 1')) 
-  c2 = Cell(Paragraph('ligne 1, case 2')) +  c2 = Cell(Paragraph('ligne 1, cellule 2')) 
-  c3 = Cell(Paragraph('ligne 1, case 3'))+  c3 = Cell(Paragraph('ligne 1, cellule 3'))
   tableau.AddRow(c1,c2,c3)   tableau.AddRow(c1,c2,c3)
  
Ligne 336: Ligne 328:
 This group of code sets the data for row number two. Notice we can set a different style for a single or multiple cells.** This group of code sets the data for row number two. Notice we can set a different style for a single or multiple cells.**
  
-Ici nous réglons les données qui vont dans chaque case de la première ligne.+Ici nous réglons les données qui vont dans chaque cellule de la première ligne.
  
   c1 = Cell(Paragraph(ss.ParagraphStyles.Heading2,'Style en-tete 2'))   c1 = Cell(Paragraph(ss.ParagraphStyles.Heading2,'Style en-tete 2'))
Ligne 343: Ligne 335:
   tableau.AddRow(c1,c2,c3)   tableau.AddRow(c1,c2,c3)
  
-Ce morceau de code règle les données pour la deuxième ligne. Remarquez que nous pouvons régler des styles différents pour une seule ou plusieurs cases.+Ce morceau de code règle les données pour la deuxième ligne. Remarquez que nous pouvons régler des styles différents pour une seule ou plusieurs cellules.
  
 **c1 = Cell(Paragraph(ss.ParagraphStyles.Heading2,'Heading2 Style')) **c1 = Cell(Paragraph(ss.ParagraphStyles.Heading2,'Heading2 Style'))
Ligne 379: Ligne 371:
 Sauvegardez et exécutez l'application. Vous remarquerez que tout ressemble à ce que vous attendiez, mais qu'il n'y a pas de bordures pour le tableau. Ceci peut rendre les choses difficiles à lire : réglons ce problème. À nouveau, j'utilise en grande partie le code de l'exemple fourni par l'auteur de pyRTF. Sauvegardez et exécutez l'application. Vous remarquerez que tout ressemble à ce que vous attendiez, mais qu'il n'y a pas de bordures pour le tableau. Ceci peut rendre les choses difficiles à lire : réglons ce problème. À nouveau, j'utilise en grande partie le code de l'exemple fourni par l'auteur de pyRTF.
  
-Sauvegardez votre fichier sous le nom rtfTableau-b.py puis effacez tout ce qui est entre « docu.Sections.append(section) » et « return docu » dans la routine ExempleTableau, et remplacez-le par ce qui suit...+Sauvegardez votre fichier sous le nom rtfTableau-b.pypuis effacez tout ce qui est entre « docu.Sections.append(section) » et « return docu » dans la routine ExempleTableau, et remplacez-le par ce qui suit...
  
 **thin_edge  = BorderPS( width=20, style=BorderPS.SINGLE ) **thin_edge  = BorderPS( width=20, style=BorderPS.SINGLE )
Ligne 412: Ligne 404:
  
   tableau = Table( TabPS.DEFAULT_WIDTH * 3, TabPS.DEFAULT_WIDTH * 3, TabPS.DEFAULT_WIDTH * 3 )   tableau = Table( TabPS.DEFAULT_WIDTH * 3, TabPS.DEFAULT_WIDTH * 3, TabPS.DEFAULT_WIDTH * 3 )
-  c1 = Cell( Paragraph( 'R1C1' ), bord_fin ) +  c1 = Cell( Paragraph( 'L1C1' ), bord_fin ) 
-  c2 = Cell( Paragraph( 'R1C2' ) ) +  c2 = Cell( Paragraph( 'L1C2' ) ) 
-  c3 = Cell( Paragraph( 'R1C3' ), bord_epais )+  c3 = Cell( Paragraph( 'L1C3' ), bord_epais )
   tableau.AddRow( c1, c2, c3 )   tableau.AddRow( c1, c2, c3 )
  
Ligne 437: Ligne 429:
 table.AddRow( c1, c2, c3 )** table.AddRow( c1, c2, c3 )**
  
-Dans la première ligne, les cases de la colonne 1 (bord_fin) et de la colonne 3(bord_epais) auront un encadrement.+Dans la première ligne, les cellules de la colonne 1 (bord_fin) et de la colonne 3(bord_epais) auront une bordure.
  
-  c1 = Cell( Paragraph( 'R2C1' ) ) +  c1 = Cell( Paragraph( 'L2C1' ) ) 
-  c2 = Cell( Paragraph( 'R2C2' ) ) +  c2 = Cell( Paragraph( 'L2C2' ) ) 
-  c3 = Cell( Paragraph( 'R2C3' ) )+  c3 = Cell( Paragraph( 'L2C3' ) )
   tableau.AddRow( c1, c2, c3 )   tableau.AddRow( c1, c2, c3 )
  
 Aucune des cases n'aura de bordure dans la ligne 2. Aucune des cases n'aura de bordure dans la ligne 2.
  
-  c1 = Cell( Paragraph( 'R3C1' ), bord_mixte ) +  c1 = Cell( Paragraph( 'L3C1' ), bord_mixte ) 
-  c2 = Cell( Paragraph( 'R3C2' ) ) +  c2 = Cell( Paragraph( 'L3C2' ) ) 
-  c3 = Cell( Paragraph( 'R3C3' ), bord_mixte )+  c3 = Cell( Paragraph( 'L3C3' ), bord_mixte )
   tableau.AddRow( c1, c2, c3 )   tableau.AddRow( c1, c2, c3 )
  
Ligne 465: Ligne 457:
   section.append( tableau )   section.append( tableau )
  
-Et voila. Vous avez maintenant les bases pour créer des documents RTF avec du code.+Et voilà. Vous avez maintenant les bases pour créer des documents RTF avec du code.
  
 À la prochaine fois ! À la prochaine fois !
  
-Le code source est disponible sur pastebin comme d'habitude. La première partie est ici : http://pastebin.com/..... et contient le résumé de rtftest.py (a à e), la seconde partie rtfTableeau.py (a et b) est ici : http://pastebin.com/.....+Le code source est disponible sur pastebin comme d'habitude. La première partie est ici : http://pastebin.com/uRVrGjkV et contient le résumé de rtftest.py (a à e), la seconde partie rtfTableeau.py (a et b) est ici : http://pastebin.com/L8DGU7Lz.
  
 ====== CODE PAGE 9 (haut) ====== ====== CODE PAGE 9 (haut) ======
issue50/tutopython.1312403297.txt.gz · Dernière modification : 2011/08/03 22:28 de fredphil91