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

VB.NET Discussion :

Imprimer document pdf avec définition de valeur


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 611
    Points : 209
    Points
    209
    Par défaut Imprimer document pdf avec définition de valeur
    Bonjour forum

    J'ai découvert ce code pour imprimer un document pdf dans une discussion sur ce forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim psi As New ProcessStartInfo
     
            psi.UseShellExecute = True
            psi.Verb = "print"
            psi.WindowStyle = ProcessWindowStyle.Hidden
            psi.Arguments = PrintDialog1.PrinterSettings.PrinterName.ToString()
            psi.FileName = "C:\Users\sylvplan\Desktop\T1K00068-1.pdf" '
     
     
            Process.Start(psi)
    Je n'ai pas une grande connaissance sur l'impression à partir de VB net. Je souhaiterais donc savoir comment définir le nombre de copies à imprimer ?

    Merci à vous

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 730
    Points : 5 391
    Points
    5 391
    Par défaut
    Le lancement d'un processus avec le verbe "PRINT" ne permet de spécifier le nombre de copie.
    Mais la classe PrintDocument couplée à une librairie capable de lire un PDF comme PdfiumViewer devrait faire l'affaire.

    Quelque chose de ce genre (écrit vite fait et non testé):
    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
    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    using PdfiumViewer;
     
    namespace Sample
    {
        public class Program
        {
            protected Program() { }
     
            static void Main()
            {
                string pdfPath = "path/to/your/document.pdf";
                int numberOfCopies = 3;
     
                using (PdfDocument document = PdfDocument.Load(pdfPath))
                {
                    PrintDocument printDocument = new PrintDocument();
                    printDocument.PrinterSettings.Copies = (short)numberOfCopies;
                    printDocument.PrintPage += (sender, e) => PrintPage(e, document);
     
                    try
                    {
                        printDocument.Print();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("An error occurred while printing: " + ex.Message);
                    }
                }
            }
     
            private static void PrintPage(PrintPageEventArgs e, PdfDocument document)
            {
                int pageIndex = e.PageSettings.PrinterSettings.ToPage - 1;
                if (pageIndex < document.PageCount)
                {
                    Image page = document.Render(pageIndex, e.PageBounds.Width, e.PageBounds.Height, true);
                    e.Graphics.DrawImage(page, e.PageBounds);
                    e.HasMorePages = pageIndex < document.PageCount - 1;
                }
                else
                {
                    e.HasMorePages = false;
                }
            }
        }
    }

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 266
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 266
    Points : 1 845
    Points
    1 845
    Par défaut
    Il me semble aussi qu'il faut qu'une imprimante soit définie par défaut sur le PC (et éventuellement que ce ne soit pas une imprimante PDF, ça aurait peu d'intérêts à mon avis ici)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/09/2016, 09h47
  2. peut-on protéger des documents pdf avec 4d?
    Par longomarc dans le forum 4D
    Réponses: 2
    Dernier message: 06/10/2007, 13h11
  3. Imprimer un pdf avec la commande "start"
    Par PDR dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/12/2006, 15h44
  4. ouvrir document pdf avec chemin absolu complet
    Par aurelie83 dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2006, 17h48
  5. Protection de document PDF avec RAVE Report.
    Par Delphi2703 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/02/2006, 08h33

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