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

Windows Presentation Foundation Discussion :

PrintDialog : seulement les propriétés avancées.


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut PrintDialog : seulement les propriétés avancées.
    Bonjour,

    Comme je n'arrivais pas à faire fonctionner la propriété "PrintDialog.UserPageRangeEnabled", (peut-être parce que je ne suis pas sur document), et aussi parce que j'ai ajouté des propriétés de en-tête/pied de page et de scale, j'ai refait une fenêtre d'édition pour l'impression.

    Mais je n'ai pris que qq propriétés standards. Je n'ai pas le choix du bac ou couleur/noir et blanc par exemple.

    Quand on lance printDialog.ShowDialog() directement, il est possible d'accéder aux propriétés avancées des imprimantes.

    est-il possible de n'appeler que cette fenêtre de propriétés avancées à partir de mon dialogue ?

    Aurore

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 22
    Par défaut
    J'ai trouvé finalement comment ouvrir cette fenêtre de propriété
    (voir la par exemple).

    Je suis passé au souci suivant. Maintenant j'ai un PrinterSettings comment faire le lien avec le PrintTicket que j'utilise plus loin.

    La seule idée qui me vient est de parcourir les propriétés du PrinterSettings et de les convertir à la main en propriété de PrintTicket... ? Qq'un aurait plus efficace ?

    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
     
     public void PrintAdvancedSettings(IntPtr oWdwHdle)
            {
                try
                {
                   PrinterSettings _psSettings = new PrinterSettings();
                    _psSettings.PrinterName = CurrentPrinter.FullName;
                    IntPtr ipDevMode = _psSettings.GetHdevmode(_psSettings.DefaultPageSettings);
                    IntPtr pDevMode = Kernel32Methods.GlobalLock(ipDevMode);
                    int nSize = DocumentProperties(oWdwHdle, IntPtr.Zero, _psSettings.PrinterName, IntPtr.Zero, ref pDevMode, 0); //pour que ca marche pour seven
                    if (nSize == -1) DocumentProperties(oWdwHdle, IntPtr.Zero, _psSettings.PrinterName, pDevMode, ref pDevMode, 0);
                    if (nSize > 0)
                    {
                        IntPtr ipDevModeData = Marshal.AllocHGlobal(nSize);
                        int iRes = DocumentProperties(oWdwHdle, IntPtr.Zero, _psSettings.PrinterName, ipDevModeData, ref pDevMode, 14);
                        Kernel32Methods.GlobalUnlock(ipDevMode);
                        if (iRes == 1)
                        {
                            _psSettings.SetHdevmode(ipDevModeData);
                            _psSettings.DefaultPageSettings.SetHdevmode(ipDevModeData);
                            //récupérer les setting pour mettre dans CurrentPrintTicket
                            //TODO 
                        }
                        Kernel32Methods.GlobalFree(ipDevMode);
                        Marshal.FreeHGlobal(ipDevModeData);
                    }
                    else
                    {
                        Kernel32Methods.GlobalUnlock(ipDevMode);
                        Kernel32Methods.GlobalFree(ipDevMode);
                    }
                }
                catch { }
            }

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/11/2015, 00h01
  2. Gérer les propriétés avancées des fichiers office.
    Par jcmong dans le forum Général VBA
    Réponses: 4
    Dernier message: 11/02/2015, 16h43
  3. [XL-2007] Modifier les propriété avancé d'un fichier "JPG"
    Par Pyton dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/03/2012, 09h02
  4. Java et les propriétés avancées dun fichier
    Par skankou dans le forum Langage
    Réponses: 4
    Dernier message: 14/09/2010, 14h54
  5. [Toutes versions] Comment écrire les propriétés avancées d'un fichier quelconque?
    Par nehoc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/04/2010, 20h22

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