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

  1. #1
    Nouveau Candidat au Club
    Exporter du texte vers le format PDF (avec multipages et UTF-8)
    Bonjour

    Est-ce qu'il y a d'autres moyens d'exporter un texte sur memo vers le format .pdf (avec multipages, support encodage utf8) sur Lazarus ?

    J'ai essayé la librairie Free JPDF Pascal. Elle supporte le multipages mais pas l'utf8, même si vous l'activez avec le code SetUTF8(True);.

    J'ai essayé aussi le package PowerPDF mais je ne pense pas qu'il supporte le multipages.

    Merci par avance.

  2. #2
    Membre expert
    Salut voila une piste pour Free JPDF ici
    Si non tu peux essayer FPPdf fournis avec FPC

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre habitué
    Citation Envoyé par BeanzMaster Voir le message
    Salut voila une piste pour Free JPDF ici

    A+
    Bonjour.
    Ce fil m'a permis de découvrir JPDF que j'ai testé ... et c'est vraiment très bien.
    Pas de problème pour l'UTF8 avec le truc fourni dans le lien ci-dessus, cela me servira peut-être un jour.

  4. #4
    Nouveau Candidat au Club
    Citation Envoyé par BeanzMaster Voir le message
    Salut voila une piste pour Free JPDF ici
    Si non tu peux essayer FPPdf fournis avec FPC

    A+
    merci pour votre réponse...

    pour Free JPDFet pour les lettres accentués latin ça marche avec le code fournis
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
      DefaultSystemCodePage := 1252;

    mais si je modifier la valeur DefaultSystemCodePage vers utf8(65001) ou vers unicode (1201) ne marche pas

    1252 — alphabet latin (langues d’Europe occidentale, remplace la page de code 850)
    65001 — Unicode (BMP de l’ISO 10646, UTF-8)
    1200 — Unicode (BMP de l’ISO 10646, UTF-16LE)
    1201 — Unicode (BMP de l’ISO 10646, UTF-16BE)

    voila un texte test (utf8 encodage)


    Testing chsdet.
    exemple texte : < école > avec lettres accentués
    &#1051;&#1086;&#1088;&#1077;&#1084; &#1080;&#1087;&#1089;&#1091;&#1084; &#1076;&#1086;&#1083;&#1086;&#1088; &#1089;&#1080;&#1090; &#1072;&#1084;&#1077;&#1090;
    &#21152;&#20062;&#38263;&#38555;&#35211;&#20869;&#26286;&#30330;&#27663;&#29421;&#20132;&#24540;&#31435;&#25246;&#35696;&#24499;
    &#923;&#959;&#961;&#949;&#956; &#953;&#960;&#963;&#952;&#956; &#948;&#959;&#955;&#959;&#961; &#963;&#953;&#964; &#945;&#956;&#949;&#964;, c&#959;&#956;&#956;&#959;&#948;&#959; &#948;&#953;c&#949;&#961;&#949;&#964; &#948;&#953;&#963;&#963;&#949;&#957;&#964;&#953;&#949;&#964; &#957;&#949; &#963;&#949;&#948;

  5. #5
    Rédacteur/Modérateur

    Bonjour !

    Je viens de faire un essai (sous Linux) avec Cairo. Ça a l'air de fonctionner. (Je parle des caractères cyrilliques. Pour ce qui est de la possibilité d'un document multipages je n'ai pas vérifié.)

    Voici mon code et le fichier obtenu.

    L'unité Cairo est livrée avec Free Pascal. En revanche il faut se procurer les fichiers binaires de la bibliothèque (pour Windows des fichiers *.dll).

  6. #6
    Nouveau Candidat au Club
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour !

    Je viens de faire un essai (sous Linux) avec Cairo. Ça a l'air de fonctionner. (Je parle des caractères cyrilliques. Pour ce qui est de la possibilité d'un document multipages je n'ai pas vérifié.)

    Voici mon code et le fichier obtenu.

    L'unité Cairo est livrée avec Free Pascal. En revanche il faut se procurer les fichiers binaires de la bibliothèque (pour Windows des fichiers *.dll).
    Merci pour votre réponse et votre idée !!

    je vient de tester l'unité cairo et votre code mais ne marche pas (l’exécutable interrompre après compilation et exécution du code )
    vous trouveriez le code source dans les attachements (pdf cairo.zip)

  7. #7
    Rédacteur/Modérateur

    Bonjour !

    Quand j'ouvre votre projet dans Lazarus, je vois ceci :



    Si je remplace la chaîne de caractères par une valeur correcte (par exemple les caractères cyrilliques pris dans votre précédent message), ça fonctionne.

    Mais, comme je l'ai dit précédemment, les fichiers binaires de la bibliothèque Cairo doivent être présents pour que ça fonctionne. Si vous êtes sous Windows, vous pouvez utiliser les DLL que j'avais attachées à ce message, ou encore celles qui sont incluses dans ce projet.

    Attention, ce sont les DLL Win32 : si vous compiler en 64 bits ça ne marchera pas. C'est peut-être ce qui vous est arrivé. Dans ce cas il faut, ou compiler en 32 bits (en choisissant la cible Win32 dans les options du projet), soit vous procurer la version 64 bits des DLL.

  8. #8
    Rédacteur/Modérateur

    Autrement, au lieu d'utiliser directement l'unité Cairo, on peut utiliser l'unité CairoCanvas. Il y a un exemple dans le dossier lazarus\components\cairocanvas\example. L'exemple montre comment créer un document multipage et écrire dans n'importe quel alphabet, ce qui correspond exactement à votre demande. J'attache en pièce jointe le document que je viens de créer.

    Mais dans tous les cas la bibliothèque Cairo doit être installée.