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

Composants VCL Delphi Discussion :

Convertir une image en PDF


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Convertir une image en PDF
    Bonjour à tous,

    J'utilise dans une appli un QReport / D6, ça fonctionne, le client me demande pouvoir imprimer les facture en PDF pour les envoyer par mails, le plus simple que j'ai trouvé ( à tore ou à raison) de lui demander d'installer PDFCreator sur PC pour rediriger l'impression vers PDFCreator et moi dans mon appli je contrôle le dossier et le nom du fichier à imprimer à partir de la base de registre

    Y a t-il un composant (Free) pour se passer de PDFCreator permettant d'imprimer directement en PDF ?

    J'ai aussi un document à éditer avec un tableau (traits et cadres ...) avec très peu de données, je me demande si il faut pas le faire avec TImage pour la faciliter de faire la présentation du tableau, bien sûr il faut aussi la convertir en PDF

    Merci de me donner votre avis

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    avec ceci ?

    http://synopse.info/fossil/wiki?name=PDF+Engine

    il me semble aussi qu'il existe une conversion Delphi de FPDF (PHP) mais je ne la retrouve pas.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    il me semble aussi qu'il existe une conversion Delphi de FPDF (PHP) mais je ne la retrouve pas.
    Moi si
    Voici le lien : Free JPDF-Pascal sur GitHub
    Philippe.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 942
    Points
    40 942
    Billets dans le blog
    62
    Par défaut
    il est possible de passer du Quickreport en PDF (sans investir , ni installer quoique ce soit) . Cela nécessite juste de retrouver quelques sources (Nishita's PDF) et un peu de codage , plus d'informations dans le forum Solutions d'entreprise/Business Intelligence/autres/Quickreport point de départ l'adresse du lien sur le source est hélas obosolète , celui-ci doit être valable
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut GitHub est un compo ?
    Citation Envoyé par Ph. B. Voir le message
    Moi si
    Voici le lien : Free JPDF-Pascal sur GitHub
    Merci pour ta réponse mais je n'arrive pas à l'installer comme composant, comment l'installer / D6

    Merci

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par fveto Voir le message
    Merci pour ta réponse mais je n'arrive pas à l'installer comme composant, comment l'installer / D6
    Ce n'est pas un composant, juste une unité à intégrer dans un projet.
    Par contre à l'heure actuelle, c'est assez (très) lié à FreePascal et Lazarus.
    Je regarde si cela peut s'adapter, mais AMHA, il y a un peu de TAF !
    Philippe.

  7. #7
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Je regarde si cela peut s'adapter, mais AMHA, il y a un peu de TAF !
    Le code examiné est assez affreux, suivant mon avis !

    Enfin, finalement, je n'ai pas eu trop d'éléments à modifier, j'ai rajouté la bibliothèque Zlib en remplacement de l'unité zstream et l'unité jpeg.
    Le code joint tourne avec D7 (avec D6 ce devrait aussi être le cas).
    La seule limitation par rapport à la bibliothèque FreePascal est que les formats d'images GIF et PNG ne sont actuellement pas pris en compte (les formats JPG, JPEG et BMP oui). En téléchargeant et rajoutant les unités adéquates, et quelques lignes de code, cette limitation peut rapidement disparaitre.
    Le projet de test est également inclus.
    Fichiers attachés Fichiers attachés
    Philippe.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 942
    Points
    40 942
    Billets dans le blog
    62
    Par défaut
    @Ph.B Beau travail , insomniaque ?

    j'ai du mal m'exprimer dans mon dernier post . Le composant Nishita PDF (2°lien) fait également de genre de chose (conversion d'une image en PDF) . j'ai indiqué que cela pouvait être utilisable directement avec Quickreport (cité dans le post de départ) car il est possible d'obtenir une image par page Quickreport

    Code D3 : 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
     
    // uses TNPDF
    // QRI : Quickreport "préparé" (qri.prepare)
     
    procedure TfrmPreview.btnPDFClick(Sender: TObject);
    var
      PPDF : TPrintPDF;
      B : TBitmap;
      MF : TMetaFile;
      FileExt : string;
      I : integer;
    begin
      with TSaveDialog.Create(Application) do
      try
        Title := 'Sauvegarde PDF';
        Filter := 'Fichiers Adobe PDF (*.pdf)|*.PDF';
        FileName := QRI.Title;
        if pos('.',FileName) > 0 then
              FileName := Copy(FileName, 1, pos('.',FileName)-1)+'.pdf'
        else FileName := FileName+'.pdf';
        if Execute then begin
          FileExt := FileName;
          PPDF := TPrintPDF.Create(Self);
          PPDF.FileName := FileName;
          PPDF.PageWidth:=round(QRI.PaperWidthValue/254*72);
          PPDF.PageHeight:=round(QRI.PaperLengthValue/254*72);
          PPDF.BeginDoc;
          for i := 1 to QRI.PageCount do begin
            StatusBar.Panels[0].Text:=format('page %d/%d',[i,QRI.PageCount]);
            B := TBitmap.Create;
            B.PixelFormat := pf24bit;
            MF := QRI.GetPage(i);
            B.Width := MF.Width;
            B.Height := MF.Height;
            B.Canvas.Draw(0,0,MF);
            PPDF.DrawJPEG(52,0,B); // JPEG
            if (i <> QRI.PageCount) then
              PPDF.NewPage;
            B.Free;
          end;
          PPDF.EndDoc;
          PPDF.Free;
        end;
      finally
        StatusBar.Panels[0].Text:='';
        Free;
      end;
    end;

    pj . une prévisualisation Quickreport personnalisé et le rendu PDF et pour la "postérité" l'unité (NISHITA) modifiée que j'ai utilisé pour la conversion
    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

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Merci Philippe
    Citation Envoyé par Ph. B. Voir le message
    Le code examiné est assez affreux, suivant mon avis !

    Enfin, finalement, je n'ai pas eu trop d'éléments à modifier, j'ai rajouté la bibliothèque Zlib en remplacement de l'unité zstream et l'unité jpeg.
    Le code joint tourne avec D7 (avec D6 ce devrait aussi être le cas).
    La seule limitation par rapport à la bibliothèque FreePascal est que les formats d'images GIF et PNG ne sont actuellement pas pris en compte (les formats JPG, JPEG et BMP oui). En téléchargeant et rajoutant les unités adéquates, et quelques lignes de code, cette limitation peut rapidement disparaitre.
    Le projet de test est également inclus.

    Je te remercie Philippe, je vais essayer ça !!!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Merci Serge
    Citation Envoyé par SergioMaster Voir le message
    @Ph.B Beau travail , insomniaque ?

    j'ai du mal m'exprimer dans mon dernier post . Le composant Nishita PDF (2°lien) fait également de genre de chose (conversion d'une image en PDF) . j'ai indiqué que cela pouvait être utilisable directement avec Quickreport (cité dans le post de départ) car il est possible d'obtenir une image par page Quickreport

    Code D3 : 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
     
    // uses TNPDF
    // QRI : Quickreport "préparé" (qri.prepare)
     
    procedure TfrmPreview.btnPDFClick(Sender: TObject);
    var
      PPDF : TPrintPDF;
      B : TBitmap;
      MF : TMetaFile;
      FileExt : string;
      I : integer;
    begin
      with TSaveDialog.Create(Application) do
      try
        Title := 'Sauvegarde PDF';
        Filter := 'Fichiers Adobe PDF (*.pdf)|*.PDF';
        FileName := QRI.Title;
        if pos('.',FileName) > 0 then
              FileName := Copy(FileName, 1, pos('.',FileName)-1)+'.pdf'
        else FileName := FileName+'.pdf';
        if Execute then begin
          FileExt := FileName;
          PPDF := TPrintPDF.Create(Self);
          PPDF.FileName := FileName;
          PPDF.PageWidth:=round(QRI.PaperWidthValue/254*72);
          PPDF.PageHeight:=round(QRI.PaperLengthValue/254*72);
          PPDF.BeginDoc;
          for i := 1 to QRI.PageCount do begin
            StatusBar.Panels[0].Text:=format('page %d/%d',[i,QRI.PageCount]);
            B := TBitmap.Create;
            B.PixelFormat := pf24bit;
            MF := QRI.GetPage(i);
            B.Width := MF.Width;
            B.Height := MF.Height;
            B.Canvas.Draw(0,0,MF);
            PPDF.DrawJPEG(52,0,B); // JPEG
            if (i <> QRI.PageCount) then
              PPDF.NewPage;
            B.Free;
          end;
          PPDF.EndDoc;
          PPDF.Free;
        end;
      finally
        StatusBar.Panels[0].Text:='';
        Free;
      end;
    end;

    pj . une prévisualisation Quickreport personnalisé et le rendu PDF et pour la "postérité" l'unité (NISHITA) modifiée que j'ai utilisé pour la conversion

    ça fonctionne parfaitement !!! un grand merci

  11. #11
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    @Ph.B Beau travail , insomniaque ?
    Insomniaque ? non
    Mais ma télé est en panne depuis quelques semaines , alors cela me laisse un peu de temps...
    Ensuite, il n'y avait rien d'insurmontable dans le portage FreePascal vers Delphi.
    Concernant QR, il y a sur Torry un composant qui fait cela :
    TQRMultiExport - PDF and Image exporter v.1.0
    Philippe.

Discussions similaires

  1. Convertir une image PNM en autre chose ...
    Par mattmarttigan dans le forum C
    Réponses: 9
    Dernier message: 09/02/2005, 20h34
  2. Comment convertir une image 24 bits en 8 bits ?
    Par James64 dans le forum Langage
    Réponses: 22
    Dernier message: 13/12/2004, 20h12
  3. [C#] Convertir une Image en Icon
    Par Piolet dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/08/2004, 13h41
  4. [C#] Comment convertir une image bmp en jpg !!!
    Par vandeyy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2004, 20h37

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