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

 Delphi Discussion :

générer suite d'un PDF avec TMSFMXPDFLib sur Delphi 10.3


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut générer suite d'un PDF avec TMSFMXPDFLib sur Delphi 10.3
    Bonsoir a tous;

    j'aimerai savoir si quelqu'un saurait comment générer la suite d'un PDF avec TMSPDFLIB sous Delphi je vous explique :

    mon code actuel génère un PDF le soucis c'est qu'au bout d'un moment dans mon document PDF je n'est plus de place en bas de page
    alors j'aimerai démarrer sur une nouvelle page a la suite mai je ne sais pas comment faire avec TMSPDFLIB et la doc ne dis rien a ce sujet


    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
    begin
     //Label1.Text:='GENERER PDF';
      //txt:='';
      p:=TTMSFMXPDFLib.Create;
     
      try
     
       p.Graphics.Font.Name := 'Arial';
       p.Graphics.Font.Size := 10;
       p.Header:='HEADER';
       txt := 'teste..teste teste teste teste......';
     
      p.BeginDocument(file+'.pdf');
      p.NewPage;
      p.Graphics.Font.Name := 'Arial';
      p.Graphics.Font.Size := 10;
      p.Graphics.Fill.Color :=Null;
      r := RectF(10, 50, 980, 400);
      p.Graphics.DrawHTMLText(txt, r);
      p.EndDocument(True);
      finally
      p.Free;
      end;

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Un nouvel appel à p.NewPage ne fonctionne pas ?
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Un nouvel appel à p.NewPage ne fonctionne pas ?

    j'ai essayer mai non sa ne marche pas,
    au lieu de me crée une nouvel page a la suite sa écrase la première du coup je me retrouve toujours qu'avec une seul page
    c'est embêtant ce problème quand même

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    La doc en parle un peu ici, quand même, non ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    La doc en parle un peu ici, quand même, non ?
    Non ils n'en parle pas, la doc de ce composant est très limite

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Je n'ai jamais testé. Il faut dire que pour faire mes PDF j'utilise plutôt FastReport .
    Par curiosité toutefois, je vais faire quelques essais. Mais déjà je remarque qu'aucune indication de taille n'est indiqué pour la/les pages mais peut-être que l'initialisation propose des valeurs par défaut.
    EN tout cas, moi aussi, j'aurais tendance à écrire que NewPage est l'instruction à utiliser.

    [Edit]
    je confirme NewPage, ça le fait.
    Voilà mon programme test (un simple bouton sur une forme)

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    unit UnitTMSPDF;
     
    interface
     
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
      FMX.Controls.Presentation, FMX.StdCtrls;
     
    type
      TForm67 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form67: TForm67;
     
    implementation
     
    {$R *.fmx}
     
    uses  FMX.TMSPDFLib, FMX.TMSPDFCoreLibBase ,FMX.TMSGraphicsTypes;
     
    procedure TForm67.Button1Click(Sender: TObject);
    var p : TTMSFMXPDFLib;
    begin
      p:=TTMSFMXPDFLib.Create;
      try
      p.BeginDocument('test.pdf');
      p.NewPage;
      p.Graphics.Stroke.Color := gcRed;
      p.Graphics.Stroke.Width := 3;
      p.Graphics.Stroke.Kind := gskDashDotDot;
      p.Graphics.DrawRectangle(RectF(10, 50, 100, 150));
      p.NewPage;
      p.Graphics.Font.Name := 'Segoe UI';
      p.Graphics.Font.Size := 16;
      p.Graphics.Font.Color := gcRed;
      p.Graphics.Font.Style := [TFontStyle.fsBold];
      p.Graphics.DrawText('Hello World !', PointF(10, 50));
      p.EndDocument(True);
      finally
      p.Free;
      end;
    end;
     
    end.
    Et j'obtiens bien deux pages
    Images attachées Images attachées
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Je n'ai jamais testé. Il faut dire que pour faire mes PDF j'utilise plutôt FastReport .
    Par curiosité toutefois, je vais faire quelques essais. Mais déjà je remarque qu'aucune indication de taille n'est indiqué pour la/les pages mais peut-être que l'initialisation propose des valeurs par défaut.
    EN tout cas, moi aussi, j'aurais tendance à écrire que NewPage est l'instruction à utiliser.
    bonjour SergioMaster,

    pour ce qui est de l'indication de taille je ne le suis pas encore pencher dessus mai c est a voir merci .

    par contre pour l'ajout d'une suite au fichier pdf le NewPage ne donne rien à moins que je ne l'utilise mal mai bon je cherche encore si quelqu'un a la solution je lui en serai infiniment reconnaissant

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par keusty78 Voir le message
    bonjour SergioMaster,

    pour ce qui est de l'indication de taille je ne le suis pas encore pencher dessus mai c est a voir merci .

    par contre pour l'ajout d'une suite au fichier pdf le NewPage ne donne rien à moins que je ne l'utilise mal mai bon je cherche encore si quelqu'un a la solution je lui en serai infiniment reconnaissant

    excuse moi je n avais pas vue le fichier joint dans ton message je vais y jeter un œil merci

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Points : 55
    Points
    55
    Par défaut
    Un grand merci à toi SergioMaster,
    ça fonctionne parfaitement, mon problème était que je m'y prenais vraiment comme un manche
    en fait je rajoutais juste le NewPage sans rentrer les autre paramètre du document c'est pour ça que je me retrouvais toujours avec une page blanche.

    Donc je mets ce sujet en résolu tout en remerciant les autres participants.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    excuse moi je n avais pas vue le fichier joint dans ton message
    c'est que je l'ai rajouté après test (d'où la "balise" [Edit]) les posts se sont donc croisés

    À remarquer, j'ai supprimé la citation inutile de mon post (et corrigé quelques fautes) un sur ma réponse est plus efficace pour indiquer aux autres lecteurs que la solution était bonne et appréciée
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Génération de PDF avec FPDF sur un serveur Apache2
    Par almarean dans le forum Apache
    Réponses: 6
    Dernier message: 27/01/2023, 15h02
  2. générer rapport image ou pdf avec php
    Par etudianti4 dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2008, 14h17
  3. probleme ouverture pdf avec SSL sur IE
    Par chess75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/09/2006, 22h43
  4. Erreur de paramètre avec SQL sur Delphi
    Par ghan77 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/01/2006, 13h30

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