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

API, COM et SDKs Delphi Discussion :

changer format A4


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut changer format A4
    salut a tous !!!!

    eh oui c'est encore moi !
    je souhaiterai savoir comment on fait pour specifier le nom d'un format d'impression dans le code.
    en gros : comment dire par exemple :

    kan l'utilisateur click sur le bouton, tu me configure le format d'impression en A3

    voila voila !!!
    merci davance !

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    aidez moi !!!!! please help !

  3. #3
    Membre émérite
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Par défaut
    Patience et longueur de temps...

    Voici un bout de code qui devrait répondre à ta question. Je ne connais pas de moyen de le faire en "pur" Delphi, mais ça ne fait pas de mal d'apprendre un peu à utiliser les API Windows.
    Je ne l'ai pas testé car je n'ai plus de papier dans mon imprimante...
    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
     
    var
      device, driver, port: array [0..255] of char;
      hDMode: THandle;
      pDMode: PDeviceMode;
    begin
      Printer.GetPrinter(device, driver, port, hDMode);
      if hDMode <> 0 then
      begin
        pDMode:= GlobalLock(hDMode);
        if pDMode <> nil then
        begin
          pDMode^.dmFields:= pDMode^.dmFields + dm_PaperSize;
          pDMode^.dmPaperSize:= DMPAPER_A5;
          GlobalUnlock(hDMode);
        end;
      end;
      Printer.BeginDoc;
      Printer.Canvas.TextOut(100, 100, 'Test d''impression au format A5');
      Printer.EndDoc;
    end;

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    salut !!!!!

    merci pour ta reponse !!!!
    le probleme est que le format que je souhaite est un format que j'ai créé via le panneau des imprimantes et donc il n'est pas dans la liste.
    dans la doc des api jai vu que l'on pouvait specifier la taille du papier comme on veut (entre autre ils parlent des imprimantes matricielles et c'est ce que je veux justement). le big probleme qui se pose est que je ne sais pas comment on se sert des api windows sous delphi et donc voila...

    j'ai essayé de modifier le code que tu m'as donné mais sans succes, ca reste en format A4...
    voici ce que j'ai fait :

    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
     
    var
      device, driver, port: array [0..255] of char;
      hDMode: THandle;
      pDMode: PDeviceMode;
    begin
      Printer.GetPrinter(device, driver, port, hDMode);
      if hDMode <> 0 then
      begin
        pDMode:= GlobalLock(hDMode);
        if pDMode <> nil then
        begin
          pDMode^.dmFields:= pDMode^.dmFields + dm_Paperlength + dm_Papersize;
          pDMode^.dmPapersize:=0;
          pDMode^.dmPaperlength:=760;
          pDMode^.dmPaperwidth:=1240;
          pDMode^.dmPapersize:=0;
          GlobalUnlock(hDMode);
        end;
      end;
      Printer.BeginDoc;
      Printer.Canvas.TextOut(100, 100, 'Test d''impression au format A5');
      Printer.EndDoc;
    end;
    pourrais tu m'aider a comprendre pourquoi il reste en A4 please ???

    merci d'avance !!!

  5. #5
    Membre émérite
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Par défaut
    Je ne peux toujour pas tester mais cela devrait être de ce genre là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        if pDMode <> nil then
        begin
          pDMode^.dmFields:= pDMode^.dmFields - dm_Papersize;
          pDMode^.dmFields:= pDMode^.dmFields + dm_Paperlength + dm_Paperwidth;
          pDMode^.dmPaperlength:=760;
          pDMode^.dmPaperwidth:=1240;
          GlobalUnlock(hDMode);
        end;

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    EL magnifico Pierro !!!!!!!!

    alors la enormes bisous car tu me sauves la vie !!!!
    MERCI BEAUCOUP !!!!!!!

    va falloir ke je bosse les API et ke je comprenne leur fonctionnement moi !!!

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    ptite question supplementaire :

    peut on se servir de ce code pour imprimer un quickreport dans ce format ???
    j'ai essayé mais il garde toujours le format par defaut qui est le A4.....c po cool !!!!

    en esperant vivement de tout mon coeur que tu saches comment faire !!!!!!!


    merciiiiiiiiiiiiiiiii

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

Discussions similaires

  1. Changer format de date - Mysql ignore le caractere \
    Par Peter K. dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/01/2008, 21h35
  2. Changer Format TIMESTAMP
    Par rapha51 dans le forum DB2
    Réponses: 2
    Dernier message: 31/10/2007, 15h30
  3. [DATE] Changer format Date Java
    Par R1pToR dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/07/2007, 14h31
  4. changer format texte
    Par mmb04 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 01/06/2007, 12h29
  5. changer format d'une date
    Par skanderb dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 30/04/2007, 15h59

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