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

Composants VCL Delphi Discussion :

Synopse PDF Engine


Sujet :

Composants VCL Delphi

  1. #1
    Membre émérite
    Synopse PDF Engine
    Bonjour

    J'utilise cette librairie pour générer des PDF.

    https://github.com/synopse/SynPDF

    ça fonctionne bien mais je cherche le moyen de d'avoir une grille de données avec des lignes autour de chaque cellule, comme dans Excel.
    J'ai trouvé la fonction qui trace une ligne en haut d'une cellule et je peux utiliser la même fonction pour faire celle d'en dessous mais impossible de trouver celle pour dessiner la ligne verticale à gauche et à droite.
    Il y a une fonction quii indique les positions gauche et droite d'une colonne mais pas la hauteur.

    Si quelqu'un utilise cette librairie et connait cette solution, ça m'arrangerait bien :-)

  2. #2
    Expert éminent sénior
    avec SynPDF tu peux utiliser un Canvas pour PDF qui te permet d'utiliser toutes les fonctions de TCanvas
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre émérite
    S'il faut tracer une "box" autour de chaque cellule, je peux le faire.
    ce n'est pas tant la question du traçage de la ligne qui me pose problème mais plutôt celle de trouver les bonnes coordonnées :-(
    Comment je peux trouver la hauteur d'une cellule ?

  4. #4
    Membre émérite
    J'ai trouvé en faisant comme ça mais je trouve ça bien lourd. Je suis bien certain que l'auteur a pensé à un truc plus simple mais bon, je m'en contenterai pour le moment

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Cl := Pages.GetColumnInfo(0);
     
        P1 := Pages.CurrentYPos;
        Pages.DrawTextAcrossCols([Translations['_RIGHT_EYE']]);
        P2 := Pages.CurrentYPos;
     
        Rct := Pages.MmToPrinter( Rect(Cl.ColLeft, P1, Cl.ColRight, P2));
        Pages.Canvas.MoveTo(Rct.Left, Rct.Top);
        Pages.Canvas.LineTo(Rct.Right, Rct.Top);
        Pages.Canvas.LineTo(Rct.Right, Rct.Bottom);
        Pages.Canvas.LineTo(Rct.Left, Rct.Bottom);
        Pages.Canvas.LineTo(Rct.Left, Rct.Top);

  5. #5
    Rédacteur/Modérateur

    Perso, les PDFs je les génère via FastReport (et les visionne avec PDFView de Winsoft)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  6. #6
    Membre émérite
    C'est aussi une solution.
    Pour Info, SynPDF a une visionneuse qui fait le boulot. Pas besoin d'un second composant

  7. #7
    Rédacteur/Modérateur

    Je n'ai pas accroché ce wagon il faudra que j'y fasse un tour.

    En parlant de GitHub, Getit propose (version 10.4.1) SVGIconImageList, bibliothèque que je qualifierai de super, je conseille toutefois de charger la version GitHub à jour. Quand je pense à tout ce que j'ai galéré pour traiter des fichiers SVG, il n'y a pas de "guerre des étoiles" avec !
    Je ne regette pas d'avoir galérer ce qui m'a permis d'entre-appercevoir le monde des SVG. Cette bibliothèque sera certainement plus facilement adoptée que ces listes (lourdes en Ko) de png multirésolutions
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  8. #8
    Membre émérite
    pour synopse, pas besoin de charger la librairie toute entière si c'est juste pour faire des PDF.
    Je peux te fournir les fichiers qui suffisent si ça t'intéresse puisque c'est "gratuit"

    Je vais voir cette SVGIconImageList , ça peut effectivement être utile.

  9. #9
    Membre émérite
    Bonjour,

    sinon pour alléger un peu; au lieu le moveTo, LineTo, tu as la fonction Rectangle pour le Canvas de SynPDF.

    Par contre les cellules je n'ai jamais utilisé.

    A+
    Charly

  10. #10
    Membre émérite
    Oui, j'y ai pensé après

    Merci tout de même.

  11. #11
    Rédacteur/Modérateur

    Citation Envoyé par Papy214 Voir le message
    pour synopse, pas besoin de charger la librairie toute entière si c'est juste pour faire des PDF.
    Je peux te fournir les fichiers qui suffisent si ça t'intéresse puisque c'est "gratuit"
    Question bête avant que je fourre mon nez dedans, c'est FMX compatible ?
    Parce que tout mes nouveaux dev (ou presque) sont FMX et les anciens (je suis dans des répercussions des idées de mon patron dans des programme D3) je suis pas près d'y faire d'ajout
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  12. #12
    Membre émérite
    à dire vrai, je n'en savais rien mais je viens de tester et il semble que non.
    J'avais un projet de test en Vcl et j'ai simplement copié le code dans un nouveau projet fmx et à la compilation:

    [dcc32 Erreur fatale] mORMotReport.pas(248): F2613 Unité 'Graphics' non trouvée.

    dans l'unité principale de la librairie

    et quand je vois les autres uses :

    Graphics, Controls, Dialogs, Forms, StdCtrls,
    ExtCtrls, WinSpool, Printers, Menus, ShellAPI, RichEdit;

    Je me dis que la suite craquera tout autant

###raw>template_hook.ano_emploi###