Partage
  • Partager sur Facebook
  • Partager sur Twitter

Garder les attributs d'un texte pour créer un PDF

    4 avril 2020 à 9:34:37

    Bonjour le monde

    J'ai un programme Python qui écrit dans des fichier texte. Ensuite, je colle ces textes dans un traitement de texte, les met en forme (police, couleur, etc.) et convertit en PDF.

    Comment faire pour programmer cette mise en forme, pour ne pas avoir à la faire manuellement ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter

    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

      5 avril 2020 à 2:57:37

      Salut,

      Il existe des modules qui doivent le permettre. Tu peux aussi utiliser tkinter pour la mise en forme. L'idée serait de séparer dans des widget Text les différentes mises en forme, et d'avoir un bouton qui effectue les mises en forme et la conversion en PDF en un clic.

      • Partager sur Facebook
      • Partager sur Twitter
        5 avril 2020 à 8:16:10

        Merci Le Cobriste 128. La conversion en PDF, ça peut se faire sous Python ou tkinter ?
        • Partager sur Facebook
        • Partager sur Twitter

        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

          5 avril 2020 à 13:34:11

          Salut,

          Je ne crois pas que tkinter permet la conversion en PDF. Mais, le script de la commande d'un bouton tkinter peut contenir d'autres modules, donc, mieux vaut un module spécifique à la conversion et le tour est joué.
          • Partager sur Facebook
          • Partager sur Twitter
            5 avril 2020 à 15:35:18

            Je ne vois pas comment tu peux automatiser la mise en forme sans indications spécifiques (que faut-il mettre en gras, en italique, où faut-il augmenter la police ?) A ma connaissance, Tkinter ne permet pas de convertir du texte mis en forme, il n'y que les canevas qui peuvent l'être (conversion en postcript ou même eps).

            Tu as des modules Python pour gérer du pdf, regarde pas exemple ICI

            Ce que tu peux faire, c'est un convertisseur Markdown pdf. Le traitement de Latex permet aussi de générer des pdf. Sur mon site, tous les pdf sont générés via Python depuis un Markdown perso converti en Latex puis en pdf

            • Partager sur Facebook
            • Partager sur Twitter
              5 avril 2020 à 19:48:34

              Merci Pascal, tout ça m'ouvre des pistes. J'avais déjà testé, sur ton conseil je crois, postscript. Après, je l'ouvre avec aperçu, et ça convertit automatiquement en pdf. Piuisqu'on peut mettre des textes dans le canvas, ça peut être une solution. Je sais pas si c'est très pratique, et si la qualité est bonne. Le module PDF, Latex, Markdown, je connais pas du tout. Il faut que je m'y mette. J'espère que c'est pas trop complexe !
              • Partager sur Facebook
              • Partager sur Twitter

              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                11 avril 2020 à 10:34:53

                Je reviens étudier cette question de la création de PDF. Les modules Pypdf, si je comprends bien, ils servent à traiter, non à créer, des PDF ? (J'ai regardé dans la doc Python, il ne figurent pas dans l'index général des modules.)

                J'ai découvert Markdown. C'est simple, et ça fait donc tout à fait l'affaire dans l'immédiat. Je n'ai pas compris comment marche l'interprétation. J'ai fait comme l'indique le prof, en écrivant un post sur le forum, et en utilisant l'aperçu. Donc, une fois que j'ai écrit ma page avec le programme Python, qu'est-ce que j'en fait ?

                Me reste plus qu'à comprendre comment se fait la conversion vers Latex, puis PDF.

                Merci pour ton aide !

                • Partager sur Facebook
                • Partager sur Twitter

                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                  11 avril 2020 à 11:00:12

                  zakod a écrit:

                  Je reviens étudier cette question de la création de PDF. Les modules Pypdf, si je comprends bien, ils servent à traiter, non à créer, des PDF ? (J'ai regardé dans la doc Python, il ne figurent pas dans l'index général des modules.)

                  J'ai découvert Markdown. C'est simple, et ça fait donc tout à fait l'affaire dans l'immédiat. Je n'ai pas compris comment marche l'interprétation. J'ai fait comme l'indique le prof, en écrivant un post sur le forum, et en utilisant l'aperçu. Donc, une fois que j'ai écrit ma page avec le programme Python, qu'est-ce que j'en fait ?

                  Me reste plus qu'à comprendre comment se fait la conversion vers Latex, puis PDF.

                  Merci pour ton aide !


                  La lib standard de Python  ne dispose pas de module de traitement du format pdf, voilà pourquoi tu n'a rien trouvé. pypdf ne semble plus maintenu mais il doit y avoir d'autres choses, j'ai vu reportlab et pdfminer ou qqchose du genre. 

                  J'ai pas vraiment compris ton objectif. Si tu veux générer du latex+pdf avec du Markdown, le plus simple est d'utiliser Pandoc. Après, si tu te donnes comme projet personnel d'écrire un convertisseur Markdown pour en obtenir un document pdf, ça n'a rien de facile : faut écrire plus ou moins un parseur de Mardown et de là tu devras convertir en latex, et si tu ne connais pas Latex, tu risques d'y passer beaucoup de temps, mais vraiment beaucoup !

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 avril 2020 à 11:16:39

                    Ce que je veux, c'est qu'un .txt écrit par un programme python puisse être mis en forme (les possibilités de Markdown me suffisent dans un premier temps) et converti en PDF, en intégrant des images PNG. Si je parle de Markdown et de latex, c'est parce que tu me suggère ces moyens.

                    Latex, ça me convient bien, pour cause de maths.

                    -
                    Edité par zakod 11 avril 2020 à 11:19:32

                    • Partager sur Facebook
                    • Partager sur Twitter

                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                      11 avril 2020 à 12:02:52

                      Et bien je t'ai indiqué la direction plus haut :

                      1. apprends les commandes latex de mises en forme que Markdown te permet

                      2. Ecris un parser mardown et génère le code latex

                      3. le front-end:

                      a) compile mon_fichier.md en mon_fichier.tex via ton programme Python de 2

                      b) compile mon_fichier.tex en un pdf via pdflatex.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 avril 2020 à 12:16:17

                        Je reprends pour m'assurer que j'ai bien compris, ou que j'ai pas compris !

                        je programme en python la syntaxe markdown sur mon texte.

                        je programme en python les conversions markdown -> latex. (le parser, c'est ça ?)

                        front-end, je vois pas ce que c'est

                        a) je comprends pas "compile"

                        b) C'est là que j'utilise pandoc ?

                        -
                        Edité par zakod 11 avril 2020 à 12:16:51

                        • Partager sur Facebook
                        • Partager sur Twitter

                        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                          11 avril 2020 à 13:06:45

                          zakod a écrit:

                          je programme en python la syntaxe markdown sur mon texte.

                          Tu écris un programme Python qui est capable de reconnaître un texte écrit en Mardown et d'analyser ses composantes (là c'est du gras, là c'est souligné, etc). En principe, on génère un AST mais tu peux faire ça de manière informelle si tu te limites dans le Markdown utilisé. Si tu n'as pas suivi un cours de compilation, ce sera du bricolage mais ça peut tenir. Ecrire un parseur même de Markdown n'est pas simple, c'est normalement des milliers de lignes de code, exemple.

                          zakod a écrit:

                          je programme en python les conversions markdown -> latex. (le parser, c'est ça ?)


                          Tu écris un programme Python capable à partir de ton AST (ou plutôt de la structure simplifiée que tu auras créée) de générer du code Latex.

                          zakod a écrit:

                          front-end, je vois pas ce que c'est

                          a) je comprends pas "compile"

                          b) C'est là que j'utilise pandoc ?

                          -

                          Le front end, c'est la génération de document final. LaTeX utilise un compilateur pour générer le pdf à partir du source écrit en tex.

                          Non, tu n'utilises pas pandoc parce que pandoc lui ferait tout à ta place : tu lui donnes ton Mardown et il te génère directement un fichier pdf compilé sous Latex.

                          Si tu n'as pas une expérience de plusieurs années d'utilisation d'un langage de programmation généraliste (Java, Python, C/C++) et je ne pense pas que ce soit le cas, je te conseille d'avoir plus d'expérience avant de te lancer dans ce genre de projet. Vaut mieux aussi connaître les regex (expressions régulières).

                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 avril 2020 à 13:24:05

                            PascalOrtiz a écrit:

                            Tu écris un programme Python qui est capable de reconnaître un texte écrit en Mardown et d'analyser ses composantes (là c'est du gras, là c'est souligné, etc).

                            En fait, ce que je compte faire, c'est écrire le texte markdown lui-même en python. Ça m'a l'air très simple, y a juste à baliser les titres, les emphases. Ça revient à écrire un texte normal avec quelques verrues par-ci par-là.

                            Non, tu n'utilises pas pandoc parce que pandoc lui ferait tout à ta place : tu lui donnes ton Mardown et il te génère directement un fichier pdf compilé sous Latex.

                            Eh ben ça, ça me plairait bien !

                            PS : j'ai pas encore compris comment citer, puis commenter sans que ça garde la mise en forme de la citation.

                            -
                            Edité par zakod 11 avril 2020 à 13:25:16

                            • Partager sur Facebook
                            • Partager sur Twitter

                            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

                            Garder les attributs d'un texte pour créer un PDF

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown