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

Langage Delphi Discussion :

Imprimer un fichier


Sujet :

Langage Delphi

  1. #1
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut Imprimer un fichier
    Est-ce que vous connaissez un composant ou une fonction simple à utiliser qui permet d'imprimer n'importe quel type de fichier en Delphi ? Je cherche donc une fonction qui s'utilise un peu comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PrintFile('machin.chose');
    Rien de vraiment compliqué . Avec la possibilité de spécifier en paramètres le nom de l'imprimante à utiliser et le nombre de copies qu'on veut avoir, ce serait encore mieux . Même si je pourrai me débrouiller pour ça.

    Je vais l'utiliser dans un programme qui effectuera des impressions en batch.

    ShellExecute ne me convient pas parce que ça ne marche pas sur certains types de fichiers (images par exemple). La GDI avec ses BeginDoc et EndDoc encore moins parce que c'est trop bas niveau (donc je devrai moi-même vérifier quel est le type du fichier qu'on va imprimer, l'ouvrir puis le desinner, etc.) alors que je souhaite pouvoir imprimer n'importe quel type de fichier.

    Merci à vous .

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Est-ce que vous connaissez un composant ou une fonction simple à utiliser qui permet d'imprimer n'importe quel type de fichier en Delphi ?
    ... à mon avis si ça existait ça se saurait depuis sa création,
    ... on est victimes de la pléthore de formats *.XYZ existants.
    ... par contre s'il s'agit par exemple d'imprimer un mélange de texte et d'images, au lieu de se farcir le tricotage d'un code d'impression sous Delphi, on peut plus simplement coder le pilotage de Word et exploiter ses possibilités de mise en page et d'impression. Donc s'il existe d'autres logiciels qu'on sait piloter depuis Delphi et qui gèrent l'impression de mélanges de formats (ou sans parler de mélanges, de formats en nombre élevé), cela pourrait répondre au moins partiellement à ta question mais cela m'étonnerait que ça répondra à la condition "n'importe quel type de fichier" ... sans oublier que "n'importe quel type de fichier" désigne également les fichiers "son"

    A+

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Non par n'importe quel type de fichier je voulais dire n'importe quel fichier imprimable bien sûr. Mais bon, juste pour imprimer des images (bmp, tiff, jpg) alors parce que pour les txt, doc, pdf, etc. il y a déjà ShellExecute. Il y en a ?

  4. #4
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-Salut,

    Si c'est juste pour
    pour imprimer des images (bmp, tiff, jpg)
    tu peux :
    1) pour les bmp tu peux utiliser le lien cité par sat83,
    2) pour les tiff et les jpg on peut s'en sortir en les convertissant en bmp.

    Voiçi quelques routines pour convertir les jpg, wmf, emf, gif, ico vers du bmp (désolé, pour le tiff je n'ai rien) :
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    // mettre jpeg, GifImage, dans le uses
     
    function BMPdeJPEG(const nomFichierJPEG : string): TBitmap;
    var      JPEGImage: TJPEGImage;
    begin    Result := Nil;
             if (nomFichierJPEG = '') then EXIT;
             try
                 JPEGImage := TJPEGImage.Create;
                 Result := TBitmap.Create;
                 Result.PixelFormat := pf24Bit;
                 try // test de chargement
                   JPEGImage.LoadFromFile(nomFichierJPEG);
                   JPEGImage.DIBNeeded;
                   Result.Assign(JPEGImage);
                 finally
                   JPEGImage.Free;
                 end;
             except
                 Result := Nil;
             end;
    end; // BMPdeJPEG
     
    function BMPdeWMF_EMF(const nomFichierWMFEMF : string) : TBitmap;
    var      MetaFile: TMetafile;
    begin    Result := Nil;
             Metafile := TMetaFile.Create;
             if (nomFichierWMFEMF = '') then EXIT;
             try Result := TBitmap.Create;
                 Result.PixelFormat := pf24Bit;
                 MetaFile.LoadFromFile(nomFichierWMFEMF);
                 // Dessine le metafile dans le canvas du Bitmap
                 Result.Height := Metafile.Height;
                 Result.Width  := Metafile.Width;
                 Result.Canvas.Draw(0, 0, MetaFile);
             finally
                 MetaFile.Free;
             end;
    end;
     
    function BMPdeGIF(const nomFichierGIF : string) : TBitmap;
    var      GIFImage :  TGIFImage;
    begin    Result := Nil;
             if (nomFichierGIF = '') then EXIT;
             GIFImage := TGIFImage.Create;
             try
                GIFImage.LoadFromFile(nomFichierGIF);
                Result:= TBitmap.Create;
                Result.PixelFormat := pf24bit;
                Result.Assign(GIFImage);
             finally
                GIFImage.Free;
             end;
    end;
     
    function BMPdeICO(const nomFichierICO : string) : TBitmap;
    var      Icon: TIcon;
    begin    Result:= Nil;
             Icon  := TIcon.Create;
             if (nomFichierICO = '') then EXIT;
             try
                Icon.LoadFromFile(nomFichierICO);
                Result:= TBitmap.Create;
                Result.PixelFormat := pf24Bit;
                try // Conversion
                   Result.Height:= Icon.Height;
                   Result.Width := Icon.Width;
                   Result.Canvas.Draw(0, 0, Icon);
                except
                   Result.Free; Result:=nil;
                end;
             finally
                Icon.Free;
             end;
    end;
    A+

  6. #6
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    OK. Je n'aurais jamais pensé que même en Delphi je devais encore utiliser des APIs de bas niveau pour imprimer un fichier. En tout cas, merci beaucoup. Toutes vos réponses m'ont été très utiles.

    A+.

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Je n'aurais jamais pensé que même en Delphi je devais encore utiliser des APIs de bas niveau pour imprimer un fichier
    ... Mais bon, c'est pas bien compliqué. Une fois que t'as codé l'impression d'un fichier *.bmp le même code est utilisable pour les autres formats dont on dispose les moulinettes de conversion vers le bmp.

    Au fait si tu trouves une routine de conversion des fichiers *.tif vers le bmp, n'hésites pas à la publier ici.

    A+

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-bonjour,

    Au fait je viens de trouver ici : http://www.efg2.com/Lab/Library/Delphi/Graphics/BMP.htm
    de quoi convertir le tiff vers bmp et le bmp vers le tiff.

    J'ai téléchargé mais je n'ai pas encore testé ... par contre tout ce que j'ai déjà téléchargé depuis efg2 marchait.

    (Voir à 'TIFF to BMP' et à 'BMP to TIFF chez efg2).

    A+.

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

Discussions similaires

  1. Imprimer automatiquement fichiers de plusieurs formats
    Par lutin511 dans le forum Windows
    Réponses: 5
    Dernier message: 07/12/2005, 18h38
  2. Comment imprimer un fichier text existant?
    Par AODRENN dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2005, 17h26
  3. Imprimer un fichier EXCEL
    Par bianconeri dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2005, 11h15
  4. Imprimer un fichier texte avec un script vbs
    Par Persons dans le forum Windows
    Réponses: 3
    Dernier message: 23/12/2004, 16h47
  5. [Imprimer] Imprimer un fichier avec Java
    Par gwendo dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 13/11/2004, 20h23

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