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

C++Builder Discussion :

TPrinter/impression recto verso: pb traduction Delphi


Sujet :

C++Builder

  1. #1
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut TPrinter/impression recto verso: pb traduction Delphi
    Bonjour, j'ai un problème lors de la conversion de Delphi vers Borland C++...
    dans le topic suivant:http://www.developpez.net/forums/sho...ht=recto-verso

    Je n'arrive pas à traduire cette partie du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with pDevmode^ do begin
            dmDuplex := DMDUP_VERTICAL;
            dmFields := dmFields or DM_DUPLEX;
          end;
    Comment fait-on???
    Pour tous le reste je penses avoir réussi

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Mattetfamilly.
    Dans l'aide en ligne Windows SDK "DevMode" on retrouve les termes dmDuplex, dmFields.
    J'espere que cela va t'aider.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    Salut,

    voici comment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    TPrinter *Prntr = Printer();
    char *ADevice, *APort, *ADriver;
    ADevice = new char[255];
    APort = new char[255];
    ADriver = new char[255];
    THandle ADeviceMode;
    LPDEVMODE pMode;
     
    Prntr->GetPrinterA(ADevice, ADriver, APort, ADeviceMode);
    pMode =(LPDEVMODE)GlobalLock((HGLOBAL)ADeviceMode);
    pMode->dmFields << DM_DUPLEX;
     
    Prntr->SetPrinterA(ADevice,ADriver,APort,ADeviceMode);

  4. #4
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Merci pour vos réponses.
    Je testerais demain matin et je vous dis demain soir.

  5. #5
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut Oups: ça ne marche pas
    Le code suivant ne marche pas:
    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
     
    void Force_Print_Duplex(int IndexPrinter)
    {
    TPrinter *Prntr = Printer();
    char *ADevice,*APort,*ADriver;
    ADevice= new char[255];
    APort= new char[255];
    ADriver= new char[255];
    THandle ADeviceMode;
    LPDEVMODE pMode;
    Prntr->PrinterIndex=IndexPrinter;
    Prntr->GetPrinterA(ADevice,ADriver,APort,ADeviceMode);
    pMode = (LPDEVMODE)GlobalLock((HGLOBAL)ADeviceMode);
    pMode->dmDuplex<<DMDUP_VERTICAL;
    pMode->dmFields<<DM_DUPLEX;
    Prntr->SetPrinterA(ADevice,ADriver,APort,ADeviceMode);
     
    Prntr->BeginDoc();
    Prntr->Canvas->TextOut(25,25,"Recto");
    Prntr->NewPage();
    Prntr->Canvas->TextOut(25,25,"Verso");
    Prntr->EndDoc();
     
    }
    j'ai même essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pMode->dmDuplex=pMode->dmDuplex<<DMDUP_VERTICAL;
    pMode->dmFields=pMode->dmFields<<DM_DUPLEX;

    Merci d'avance pour votre aide
    Matt

  6. #6
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Après plusieurs essais, j'ai l'impression que mon SetPrinter n'est pas à sa place dans ce code...

    J'ai essayé des codes avec OpenPrinter et ClosePrinter...

    Mais à priori, j'ai un autre problème:
    lorsque mon document est imprimé, et qu'il se trouve dans la file d'attente d'impression, il est bien indiqué que le document est en recto verso mais il ne l'est pas effectivement...

    Après une lecture de l'aide de Windows SDK, je me suis aperçu que je suis en Windows 2000 et mon imprimante est un photocopieur sur le réseau...
    Il s'avère que je suis obligé d'installer une copie de l'imprimante sur un port Local qui pointe l'imprimante réseau... Mais même après cela, ça ne change rien...
    Je dirais même pire sur l'imprimante installée sur le port local "virtuel", je n'arrives même pas à faire de recto verso sous Word par exemple...

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Mattetfamilly a ecrit:
    Après plusieurs essais, j'ai l'impression que mon SetPrinter n'est pas à sa place dans ce code...

    J'ai essayé des codes avec OpenPrinter et ClosePrinter...

    Mais à priori, j'ai un autre problème:
    lorsque mon document est imprimé, et qu'il se trouve dans la file d'attente d'impression, il est bien indiqué que le document est en recto verso mais il ne l'est pas effectivement...

    Après une lecture de l'aide de Windows SDK, je me suis aperçu que je suis en Windows 2000 et mon imprimante est un photocopieur sur le réseau...
    Il s'avère que je suis obligé d'installer une copie de l'imprimante sur un port Local qui pointe l'imprimante réseau... Mais même après cela, ça ne change rien...
    Je dirais même pire sur l'imprimante installée sur le port local "virtuel", je n'arrives même pas à faire de recto verso sous Word par exemple...
    Il y avait des exemples dans le lien que tu a donne a tu pense a y jeter un oeuil.

    Il me semble me souvenir qu'il y a eut un poste avec un probleme avec les imprimantes reseau.

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738

  9. #9
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut test et retest / toujours pas de recto Verso...
    Merci Blondelle,

    J'ai retesté le code dans sa globalité à l'exception de l'impression Word...

    Voici mon code:

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
     
    //---------------------------------------------------------------------------
    bool Test_Print_Duplex(int IndexPrinter)
    {
    char Device[255],Driver[255],Port[255];
    THandle hDevMode;
    TPrinter *MyPrinter = Printer();
    MyPrinter->PrinterIndex=IndexPrinter;
    MyPrinter->GetPrinter(Device,Driver,Port,hDevMode);
    if(DeviceCapabilities(Device,Port,DC_DUPLEX,NULL,NULL)!=0)
            return true;
    else    return false;
    }
    bool SetPrinterDuplex(String sPrinterName , long nDuplexSettings)
    {
    HANDLE hPrinter;
    PRINTER_DEFAULTS pd;
    LPPRINTER_INFO_2 pinfo;
    //DEVMODE dm;
    LPDEVMODE dm;
     
    //LPDEVMODE *yDevModeData;
    LPDEVMODE yDevModeData;
    LPBYTE yPInfoMemory;
    LPDWORD nBytesNeeded;
    long nRet;
    LPDWORD nJunk;
     
    try
            {
            if((nDuplexSettings<1)||(nDuplexSettings>3))
                    {
                    MessageDlg("Erreur:\r\nle paramètre Recto Verso est incorrect: "+IntToStr(nDuplexSettings),mtError, TMsgDlgButtons() << mbCancel, 0);
                    return false;
                    }
            pd.DesiredAccess=PRINTER_ALL_ACCESS;
            nRet=OpenPrinter(sPrinterName.c_str(),&hPrinter,&pd);
            if((nRet==0)||(hPrinter==0))
                    {
                    if(GetLastError()==5)
                            MessageDlg("Erreur:\r\nAccès refusé à l'imprimante!",mtError, TMsgDlgButtons() << mbCancel, 0);
                    else    MessageDlg("Erreur:\r\nL'accès imprimante à échoué, vérifier:\r\n\t*L'imprimante est allumée et en ligne.\r\n\t*En cas d'imprimante partagée, que le PC correspondant soit allumé.",mtError, TMsgDlgButtons() << mbCancel, 0);
                    return false;
                    }
            nRet = DocumentProperties (0, hPrinter , sPrinterName.c_str(),0,0,0);
            if(nRet<0)
                    {
                    MessageDlg("Erreur:\r\nImpossible d'obtenir la taille des paramètres imprimante (DEVMODE)!",mtError, TMsgDlgButtons() << mbCancel, 0);
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
    //        yDevModeData = new LPDEVMODE [nRet+100];
            nRet=DocumentProperties(0,hPrinter,sPrinterName.c_str(),yDevModeData/*[0]*/,0 , DM_OUT_BUFFER);
            if(nRet<0)
                    {
                    MessageDlg("Erreur:\r\nImpossible d'obtenir les paramètres imprimante (DEVMODE)!",mtError, TMsgDlgButtons() << mbCancel, 0);
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
     
            /*Call */CopyMemory ( dm, yDevModeData/*[0]*/,sizeof(dm));
            if((dm->dmFields&DM_DUPLEX)!=DM_DUPLEX)
                    {
                    MessageDlg("Erreur:\r\nImpossible d'affecter le mode recto Verso! 2 cas possibles\r\n\t*L'imprimante ne supporte pas le recto Verso\r\n\t*Le driver de l'imprimante ne supporte pas son affectation par programmation.",mtError, TMsgDlgButtons() << mbCancel, 0);
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
            dm->dmDuplex=nDuplexSettings;
            /*Call */CopyMemory (yDevModeData/*[0]*/ , dm , sizeof(dm));
            nRet = DocumentProperties (0, hPrinter, sPrinterName.c_str(), yDevModeData/*[0]*/ , yDevModeData/*[0]*/,DM_IN_BUFFER|DM_OUT_BUFFER);
            if(nRet<0)
                    {
                    MessageDlg("Erreur:\r\nImpossible d'affecter le mode recto Verso sur cette imprimante!!!",mtError, TMsgDlgButtons() << mbCancel, 0);
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
            GetPrinter(hPrinter, 2, 0, 0, nBytesNeeded);
            if(nBytesNeeded==0)
                    {
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
    //        yPInfoMemory = new LPDEVMODE [nRet+100];
            nRet= GetPrinter (hPrinter, 2, yPInfoMemory /*[0]*/, (DWORD) nBytesNeeded, nJunk);
            if(nRet == 0)
                    {
                    MessageDlg("Erreur:\r\nImpossible d'obtenir les paramètres imprimante!!!",mtError, TMsgDlgButtons() << mbCancel, 0);
                    if(hPrinter!=0)
                            ClosePrinter(hPrinter);
                    return false;
                    }
            /*Call*/ CopyMemory(pinfo, yPInfoMemory/*[0]*/, sizeof(pinfo));
            pinfo->pDevMode = yDevModeData/*[0]*/;
            pinfo->pSecurityDescriptor = 0;
            /*Call*/ CopyMemory(yPInfoMemory/*[0]*/, pinfo, sizeof(pinfo));
     
            nRet=SetPrinter(hPrinter, 2, yPInfoMemory/*[0]*/, 0);
            if(nRet==0)
                    MessageDlg("Erreur:\r\nImpossible d'affecter les paramètres imprimante!!!",mtError, TMsgDlgButtons() << mbCancel, 0);
            if(hPrinter!=0)
                    ClosePrinter(hPrinter);
     
            return true;
            }
    catch(...)
            {
            if(hPrinter!=0)
                    ClosePrinter(hPrinter);
     
            return false;
            }
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button6Click(TObject *Sender)
    {
    ListBox2->Items->Text=Printer()->Printers->Text;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::ListBox2Click(TObject *Sender)
    {
    if(Test_Print_Duplex(ListBox2->ItemIndex))
            {
            Label1->Caption="Recto Verso Autorisé";
            Label1->Color=clBtnFace;
            }
    else
            {
            Label1->Color=clRed;
            Label1->Caption="Recto Verso Non Autorisé";
            }
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::ListBox2DblClick(TObject *Sender)
    {
    if(Test_Print_Duplex(ListBox2->ItemIndex))
            {
            Label1->Caption="Recto Verso Autorisé";
            Label1->Color=clBtnFace;
            SetPrinterDuplex(ListBox2->Items->Strings[ListBox2->ItemIndex] , DMDUP_VERTICAL);
            TPrinter *MyPrinter=Printer();
            MyPrinter->PrinterIndex=ListBox2->ItemIndex;
            MyPrinter->Title="Test Recto Verso";
            MyPrinter->BeginDoc();
            MyPrinter->Canvas->TextOutA(25,25,"Recto");
            MyPrinter->NewPage();
            MyPrinter->Canvas->TextOutA(25,25,"Verso");
            MyPrinter->EndDoc();
     
     
     
     
            }
    else
            {
            Label1->Color=clRed;
            Label1->Caption="Recto Verso Non Autorisé";
            }
     
    }
    //---------------------------------------------------------------------------
    Mais j'ai bien une impression mais elle n'est pas recto verso...
    Y'a t-il une erreur dans mon code?
    Ou bien c'est réellement la gestion d'imprimante sur le réseau???

  10. #10
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Bon alors là...

    J'ai ajouté un RichEdit pour tester l'impression via ce type de composant et depuis cela fonctionne même avec mon objet Printer...

    Je laisses non résolu car je vais faire davantage de tests au cas où...

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Mattetfamilly
    un lien qui je pense va t'interresser:

  12. #12
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut à suivre...


    Après quelques essais, cela ne fonctionnait plus.
    Comme si une variable tombait lors de la fermeture de Builder...

    Merci pour ton lien Blondelle, il est intéressant mais ne permet pas de répondre à mon besoin...

    Ma demande est toujours d'actualité...

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Par défaut
    Bonjour

    Pour avoir pas mal galèré sur des problèmes identiques j'en suis arrivé à la chose suivante pour définir ou trouver une 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
     
    //---------------------------------------------------------------------------
     
    				void ResetPrinter(void)
    				{
    					HGLOBAL hMem;
    					LPDEVMODE lpdm;
    					char device[MAX_PATH], driver[MAX_PATH], port[MAX_PATH];
     
    					Printer()->GetPrinter(device, driver, port, reinterpret_cast<THandle>(hMem));
    					Printer()->SetPrinter(device, driver, port, NULL); //Force la reconstruction de la structure DEVMODE qui ne se fait pas toujours quand on change d'imprimante
    					Printer()->GetPrinter(device, driver, port, reinterpret_cast<THandle>(hMem));
     
    					lpdm = reinterpret_cast<LPDEVMODE>(GlobalLock(hMem));  // si non accessible, cherche une autre imprimante
    					GlobalUnlock(hMem);
    					if (lpdm == NULL) Prn = NULL;
    					else Prn = Printer();            // Prn variable globale ici
    				}
    Il faut faire un SetPrinter avant le GetPrinter qui permet de récupérer DEVMODE.

    Je ne sais pas si ça t'aidera mais on ne sais jamais.

    Pour les imprimantes réseau, à la sélection d'une imprimante réseau par l'utilisateur, il faut tester si elle est accessible ou non. Car si on envoie une impression sur une imprimante réseau non accessible parfois le driver te prévient, d'autres fois le programme plante : en fait je crois que ça dépend du driver livré par le constructeur de l'imprimante.

  14. #14
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Merci Orangina.

    Bon il semble que les différents derniers tests soient intéressants...
    Je n'ai toujours pas de Recto Verso.


    Mais il semble que lorsque je tente d'accèder à une imprimante réseau pour lui affecter le mode recto verso qu'elle supporte je sois jeté...
    L'imprimante est bien présente et utilisable (test sous Word au préalable ayant fonctionné)

    Je penses que le problème soit un problème de droit d'utilisation de l'imprimante.

    D'après ce que je vois il y a trois types d'accès:
    • accès pour utilisation
    • accès pour gestion de l'imprimante
    • accès pour gestion de documents

    Je n'ai que l'accès pour utilisation.
    Je penses que les méthodes utilisant GetPrinter et SetPrinter ne sont pas compatibles avec ce mode d'accès.

    J'ai créé une copie de l'imprimante en local avec un port local connecté à l'imprimante via le réseau comme préconisé par microsoft... Et dans ce cas, je ne peux même pas affecter par défaut le recto verso alors que je peux mettre du recto verso par défaut sur l'original...(ce qui ne m'intéresses pas)

  15. #15
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Mattetfamilly:
    Tu dit que Word marche en recto/verso donc quelque part dans les parametres il doit apparaitre la validation de Word pour soit:
    accès pour utilisation
    accès pour gestion de l'imprimante
    accès pour gestion de documents
    Ou pour l'ensemble de ces parametres.

  16. #16
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'utilise Xp pro dans les parametres de securite locaux il y a "empecher les utilisateurs d'installer des pilotes d'imprimantes.
    Est ce que ton programme ne serait pas considere comme un pilote d'imprimante?

  17. #17
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut C'était peut-être tout bête, mais...
    En fait,

    J'ai l'impression que lorsque je modifies le recto verso sous Word, je le fais pour l'application en cours...
    Alors que dans les exemples de microsoft, j'ai vu que l'on informais ls autres applications actives qu'une modification avait eu lieu sur l'imprimante...
    Je penses que c'est pour cela que ça ne marchait pas...

    Mais à la relecture de mon application, je crois que le problème n'est pas là où je le cherchais...
    Au début j'utilisais Printer().
    Et il s'avère que je faisais la modification du Duplex dans une fonction spécifique et à l'intérieur de cette fonction j'instancie un objet Printer différent de celui que j'utilises lors de l'impression.

    Je vais donc essayer de revenir en arrière sur mon code tout en prenant en compte celui de Orangina.

    Merci.
    Asuivre....

  18. #18
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut Printdlg?
    Re bonjour,

    Je viens de faire de nouveaux tests...

    En fait sous Word j'utilises la boite de dialogue de configuration d'impression.
    Ensuite j'accèdes aux propriétés de l'imprimante sélectionnée pour modifier le recto Verso...

    Si je mets une boîte de configuration d'impression dans mon application et que je l'utilises de la même manière, alors, mon impression est recto verso...

    En bref, l'impression recto verso semble possible...
    Toutefois avec pas loin de 9000 documents imprimés à l'année, je souhaiterais tout de même éviter l'utilisation de cette boîte de dialogue tout en considérant que mon application n'est pas la seule à utiliser cette imprimante et que les autres applications ne nécessitent pas forcément de Recto Verso.

    J'essayes avec PRINTDLG mais un exemple serait le bienvenu...

    Asuivre...

  19. #19
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut
    Je n'ai pas réussi avec PrintDLG...
    Je penses que je vais reposer ma question sur le forum dévellopement Windows car à priori, mon problème n'est pas spécifique C++ Builder.

    Des fois que quelqu'un trouve enfin une solution, je laisse en non résolu...

    Mattetfamilly

  20. #20
    Membre expérimenté Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Par défaut suite... ???
    Bonjour,

    Entre 2 projets, je me suis repenché sur le sujet...

    En cherchant dans la msdn, j'ai découvert une subtilité...
    Mon PC et le PC utilisateur principal de mon application sont en Windows 2000.
    L'imprimante est un photocopieur RICOH sur le réseau d'entreprise... Elle est directement rattachée au serveur et partagée entre tous...

    D'après la msdn, cette configuration n'est pas bonne lors d'une exécution sous Windows 2000.

    Msdn conseille alors de créer une copie de l'imprimante en local, ce que j'ai fait C'est à dire qu'on l'utilise sur un port local qui pointe en réalité l'adresse réseau du copieur.
    Mais cela ne marche pas... Pire encore dans cette configuration, je ne peux pas définir le recto verso par défaut pour l'imprimante locale ainsi créée...

    Je n'ai pas encore pu tester sur un poste NT... ni sur XP...

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

Discussions similaires

  1. [CR8] Impression recto-verso
    Par marceline dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 06/07/2005, 09h46
  2. [CR] Impression recto verso des étiquettes
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/09/2004, 09h07
  3. [Rave] Impression Recto Verso en un clic
    Par Kraby dans le forum Rave
    Réponses: 2
    Dernier message: 22/04/2004, 08h46
  4. [VB6] DataReport et Impression Recto-Verso
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/12/2003, 11h18
  5. [CR8.5] Impression Recto verso
    Par L.nico dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 25/11/2003, 16h57

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