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

Lazarus Pascal Discussion :

Imprimer plusieurs fichiers


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Imprimer plusieurs fichiers
    Bonjour à tous

    J'ai un dossier contenant plusieurs graphiques au format jpg.
    Je liste ces fichiers dans une listbox.
    Je voudrais ensuite imprimer ces fichiers en une seul fois.

    merci

  2. #2
    Modérateur

    Chacun sur une page, mais d'une seule commande, ou rassemblés sur une page ?
    Delphi 5 Pro - Delphi 10.3.2 Rio 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 !

  3. #3
    Membre du Club
    chacun sur une page en une seule commande.

  4. #4
    Expert éminent sénior
    Salut,
    Citation Envoyé par sematimo Voir le message
    Je voudrais ensuite imprimer ces fichiers en une seule fois.

    merci.
    Et qu'est-ce que tu as tenté comme code, et il coince où ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Membre du Club
    Bonjour

    Voilà le code que j'utilise:

    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
    procedure TForm1.ListBox1Click(Sender: TObject);
    Var
         page:Trect;
        btmp:TBitmap;
    begin
            btmp:=TBitmap.Create;
           btmp.LoadFromFile(ListBox1.Items[Listbox1.ItemIndex]);
            Printer.SetPrinter(Printer.PrinterName);
    	Printer.Title := 'Test impression';
      Printer.BeginDoc;
      page:= Rect(0,0,Printer.PageWidth-30,Printer.PageHeight-30);
      Printer.Canvas.StretchDraw(page,btmp);
     Printer.EndDoc;
           btmp.Free;
          end;


    Ma listbox contient les chemins de mes fichiers.
    Lorsque je sélectionne un item , l'impression du fichier se fait.
    Je voudrais ne pas avoir à sélectionner les fichiers les uns après les autres et lancer une impression comme un doc avec plusieurs pages, chaque page étant un fichier.

  6. #6
    Modérateur

    Bonjour,
    Il doit suffire (dans le code d'un bouton par exemple) de boucler sur le nombre d'items de la liste et de déclencher pour chacun la procédure que tu utilises.
    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
    procedure PrintFile(aFileName: string);
    Var
         page:Trect;
        btmp:TBitmap;
    begin
            btmp:=TBitmap.Create;
           btmp.LoadFromFile(aFileName);
            Printer.SetPrinter(Printer.PrinterName);
    	Printer.Title := 'Test impression';
      Printer.BeginDoc;
      page:= Rect(0,0,Printer.PageWidth-30,Printer.PageHeight-30);
      Printer.Canvas.StretchDraw(page,btmp);
     Printer.EndDoc;
           btmp.Free;
          end;
     
    procedure TForm1.ListBox1Click(Sender: TObject);
    begin
      PrintFile(ListBox1.Items[Listbox1.ItemIndex]);
    end;
     
    procedure TForm1.bnAllFilesClick(Sender: TObject);
    var
      i: integer;
    begin
      for i := 1 to Listbox1.Items.Count do
         PrintFile(ListBox1.Items[i-1]);
    end;
    Delphi 5 Pro - Delphi 10.3.2 Rio 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 !

  7. #7
    Membre du Club
    Bonjour
    Pourquoi faire compliqué quand on peut faire simple...
    J'étais partir sur un truc de doc avec plusieurs pages...

    merci

  8. #8
    Rédacteur/Modérateur

    Je serais plutôt parti sur un Printer.NewPage dans la boucle mais pour l'impression sur une imprimante A4 standard ça ne fera pas grande différence.

    Cependant avec NewPage, on aurait un seul document dans la file d'impression, plus facile de l'interrompre le cas échéant.

    Par contre pour des impressions d'étiquettes en rouleau style Zebra TLP, il est important de passer par NewPage. Ce type d'imprimante lance une calibration au début du document par un mouvement avant/arrière du rouleau. Le faire à chaque étiquette n'est pas envisageable

###raw>template_hook.ano_emploi###