IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

lpOD : définir la largeur d'une cellule


Sujet :

Python

  1. #1
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 423
    Par défaut lpOD : définir la largeur d'une cellule
    Bonjour,
    J'essaie de générer un document open office text à l'aide de la bibliothèque lpOD.
    Ce document est composé d'une série de tableaux pour lesquels j'aimerai redéfinit la largeur des colonnes.
    Hélas les cookbooks et la doc que j'ai trouvé sur leur site n'est pas assez limpide pour moi à ce sujet.
    Voici ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    import lpod.document
    import lpod.table
     
    doc = lpod.document.odf_new_document_from_type('text')
    body = doc.get_body()
     
    col_1_style = lpod.style.odf_create_style('table-column', 'column1', width='4cm')
    doc.insert_style(col_1_style)
     
    table = lpod.table.odf_create_table(u"Table 1", width=2, height=3)
    for i in range(3):
        row = table.get_row(i)
        row.set_cell_values(range(2))
        table.set_row(i, row)
     
    col = table.get_column(1)
    col.set_column_style('column1')
    table.set_column(1, col)
     
    body.append(table)
     
    doc.save("lpod_test.odt")
    Dans le fichier odt, je me retrouve avec un tableau dont aucune colonne ne fait 4 cm de large.
    Qui pourrait me dire comment je suis censé m'y prendre ?

    Merci pour votre aide,

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par défaut
    Bonjour,

    J'ai un peu cherché sur internet et je pense avoir trouvé... Je pense que la taille de la colonne depend de la taille de toutes les lignes de cette colonne (elle doit prendre la taille la plus grande pour pouvoir afficher correctement le contenue de chaque ligne).

    D'apres la documentation, vous pourriez peut-etre en créant vos lignes, indiquer une taille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lpod.table.odf_create_row(width=None, repeated=None, style=None)
    Sinon, vous pouvez agrandir la taille du tableau lors de sa création, je pense que la taille des colonnes dépend du nombre de colonne dans le tableau; si vous avez 3 colonnes et que vous voulez que chaque colonne facent 4 cm, essayer de mettre une taille de 12 pour le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lpod.table.odf_create_table(name, width=None, height=None, protected=False, protection_key=None, display=True, printable=True, print_ranges=None, style=None)
    dans les deux cas, je n'ai pas testé, mais peut etre que cette ébauche de réponse vous donnera des idées et motivera ceux qui savent à apporter leur soutient.

    Bon courage...

    Mickael

  3. #3
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 423
    Par défaut
    Merci pour cette réponse.
    Sinon, pour précision :
    Je ne cherche pas à avoir 3 colonnes de 4 cm de large.
    En fait, je cherche à afficher des tables "Code - libellé" et je préfèrerai (euphémisme) avoir des colonnes plus étroite pour les codes que pour les libellés.

    J'ai cru comprendre dans la documentation qu'il était possible de fixer les propriétés d'une colonne en passant par les styles.

    http://docs.lpod-project.org/level1-...#column-styles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    col_1_style = lpod.style.odf_create_style('table-column', 'column1', width='4cm')
    ...
    col = table.get_column(0)
    col.set_column_style('column1')
    table.set_column(0, col)
    J'ai également vu qu'il existait une fonction set_properties pour modifier les styles.
    Par contre, je n'ai pas réussi à les utiliser correctement.
    Il y a certainement un truc qui m'a échappé mais je n'arrive pas à le trouver.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par défaut
    Bonjour,

    Il n'y a pas de soucie, c'est normal de vouloir aider, on est la pour sa .

    D'après la documentation que vous m'avez donné, j'ai remarqué que vous avez utilisé "widht" pour la taille (ce que j'aurai egalement fait, mais d'apres la documentation que vous m'avez donné j'ai trouvé ce bout de code sur la meme page plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    s = odf_create_style('text',
                         name='MyColoredText',
                         'display name'='My Colored Text',
                         font='Times New Roman',
                         size='14pt',
                         weight='bold',
                         style='italic',
                         color='#000080',
                         )
    weight='bold' c'est pour que cela soit en gras :s (j'avoue que cela me perturbe)
    Mais peut etre faudrait-il essayer size (ne mettrez pas 4 pour 4cm, cela marche en pixel, alors dans un premier temps pour voir si cela marche, mettez un grand nombre pour voir al difference).

    Je continue a chercher de mon coté et si j'ai du nouveau, j'editerai mon poste si possible...

    Mickael

  5. #5
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 423
    Par défaut
    Le style "text" (premier paramètre, qui définit la famille) est destiné à formater le texte (paragraphe et police).
    Pour les colonnes, il faut normalement utiliser la famille "table-column" dont les paramètre sont précisés en bas de la page
    http://docs.lpod-project.org/autodocs/style.html

Discussions similaires

  1. [lpOD] - modifier la largeur d'une cellule
    Par fatbob dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 14/12/2010, 09h20
  2. Fixer la largeur d'une cellule
    Par Goupo dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 13/04/2007, 14h00
  3. Réponses: 1
    Dernier message: 01/08/2006, 21h10
  4. Réponses: 1
    Dernier message: 08/03/2006, 20h07
  5. Réponses: 8
    Dernier message: 15/07/2005, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo