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 :

imprimer fichier en mode paysage [Sources]


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut imprimer fichier en mode paysage
    Bonjour,

    Je viens de parcourir les sujets concernant l'impression via c++ builder, mais je n'ai rien trouv� m'apportant une solution.

    J'ai trouve ce code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
            if(PrintDialog1->Execute())
            {
            ShellExecute(NULL,"print","c:\fichier.doc","", "", SW_HIDE);
            }
    Mais les options venant du PrintDialog1 ne sont pas pris en compte :S il imprime toujours sur la sortie par defaut windows, et non l'imprimante selectionn�e.

    Je voudrais �galement forc� l'impression en mode paysage.

    Si quelqu'un � une id�e.
    Un grand merci

  2. #2
    Membre �clair�
    Inscrit en
    Mai 2003
    Messages
    86
    D�tails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Par d�faut
    Salut,
    Regarde du c�t� de Printer().

    Un truc du genre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    TPrinter *Prntr = Printer();
     
        Prntr->Orientation=poLandscape;
    ---
    Apr�s il faut que tu regardes les m�thodes de Printer()...

    J'esp�re que �a t'aidera. J'ai rien d'autre en stock.

  3. #3
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    merci, J'avais d�j� recherch� dans cette voie, mais je ne trouve rien de concret, un exemple pour me permettre de comprendre comment imprier ce fichier :S

  4. #4
    Invit� de passage
    Inscrit en
    Mars 2003
    Messages
    1
    D�tails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1
    Par d�faut
    Que veux tu imprimer : un document de ton applic ou un document exterieur.

    Dans le premier cas utilse Printer(),
    Sinon lance une commande avec le shell du system.

    Voici un bout de 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
    if(!PrintDialog1->Execute())
       return;
     
    // Paramètres de la page d'impression
       Printer()->Title = "Titre de ton impression";
       Printer()->Orientation = poLandscape ; // orientation
     
    // initialisation de la page d'impression
        Printer()->BeginDoc();
     
    // préparation de la page d'impression
        Printer()->Canvas->TextOut(20,20,"Ton texte");
    // envoi des commandes d'impression à l'imprimante
        Printer()->EndDoc();
    Courage

  5. #5
    Membre �clair�
    Inscrit en
    Mai 2003
    Messages
    86
    D�tails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Par d�faut
    Je peux me tromper mais j'ai l'impression qu'il veut imprimer un fichier.
    Je ne sais pas comment �a se fait. C'est pour �a que je ne r�ponds pas.

    Par contre vous devriez mettre des balises code.

    Bon courage

  6. #6
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    oui c'est bien un fichier que je veux imprimer. Et comme je l'ai mis, le shellexecute ne prend pas en compte les parametres du PrintDialog1->Execute()

    merci

  7. #7
    R�dacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par d�faut
    Citation Envoy� par Le Veilleur
    oui c'est bien un fichier que je veux imprimer. Et comme je l'ai mis, le shellexecute ne prend pas en compte les parametres du PrintDialog1->Execute()
    C'est tout � fait normal. Le PrintDialog sert juste � pr�senter la fiche de configuration de l'imprimante, et � fournir les choix de l'utilisateurs gr�ce � ses propri�t�s. Si tu ne les utilises pas, les choix faits par l'utilisateur ne sont pas pris en compte...

    A titre personnel, je ne pense pas que la configuration de l'impression soit possible par un simple ShellExecute, qui ne fait rien d'autre qu'activer la fonction par d�faut, � savoir l'impression avec les param�tres pr�d�finis...

    Cordialement,

    Arnaud

  8. #8
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    C'est l� que ce trouve toute la question, comment r�cuperer les choix de l'utlisateur via le printdialog, et surtout, comment imprimer ce fichier.

    J'ai fait plusieurs recherche sur le forum et google, et je n'ai pas trouv� grand chose de bien, idem sur hfr.

    Pourtant ca me semble etre quelque chose de classique :S

    merci

  9. #9
    Membre �prouv�
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Par d�faut
    je pense que tu vas �tre oblig� de faire un traitement sp�cifique pour chaque type d'impression que tu veux r�aliser ... par exemple si tu veux imprimer un fichier Word je te conseille de te pencher sur OLE ... tu pourras ainsi piloter toi m�me Word ... je crois que tu pourras faire ce quetu veux avec un tprintdialog ...

  10. #10
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    non non, en fait, c'est un simple fichier texte que je veux imprimer, mais l'imprimer en mode paysage, ca serait d�j� bien

  11. #11
    Membre �prouv�
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Par d�faut
    je pense que ca doit marcher :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Printer->Orientation = poLandScape;
     
    TRichEdit * RE = new TRichEdit (NULL);
    RE->Parent = this;
    RE->Visible=false;
    RE->Lines->LoadFromFile(ton nom de fichier texte);
    RE->Print("Impression");
    delete RE;
    je fait ca de tete ... a verifier ...

  12. #12
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    Il me refuse la construction du trichedit.

    C'est pas tres propre comme m�thode, y a pas mieux ?

  13. #13
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    J'ai cr�e un trichedit non dynamique, ca fonctionne bien, et je sais imprimer en mode paysage.

    maintenant mon probl�me, c'est que le richedit, ne g�re pas les blancs comme un caract�re. ce qui fait que mes lignes ne sont plus align�es du tout. ce qui est tr�s g�nant,

    Si vous avez une id�e, merci

    Pourtant le pitch est bien mis sur fixe :S

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    RichEdit1->Clear();
    RichEdit1->Font->Pitch=fpFixed;
    RichEdit1->PlainText = false;
    RichEdit1->Lines->LoadFromFile(Edit8->Text.c_str());
    Ce que ca donne en image

    Le fichier d'origine avec la mise en page que je souhaite garder
    http://www.leveilleur.net/chris/pitch1.jpg

    Ce que le loadfile me donne dans un richedit
    http://www.leveilleur.net/chris/pitch2.jpg

  14. #14
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    16
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 16
    Par d�faut
    Ma solution, j'en ai bav�, mais ca marche

    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
     vector<AnsiString > vecTemp;
     vecTemp.clear();
     FILE *monFichier;
     monFichier = fopen(Edit8->Text.c_str(), "r");
     char szBuffer;
     AnsiString temp;
        if(monFichier != NULL)
          { //Le fichier n'est pas vide
            while (!feof(monFichier))
              {
                fread(&szBuffer, 1, 1,monFichier); //on range les caractere dans le buffer
                if(szBuffer != '\n')
                   temp+=szBuffer;
               else
                  {
                   if(temp !="")
                   vecTemp.push_back(temp);
                   temp="";
                  }
               }
            fclose(monFichier);
          }
     
    TPrinter * Prntr = Printer();
    Prntr->Orientation = poLandscape;
    Prntr->Canvas->Font->Name = "Courier";
    Prntr->Canvas->Font->Color = clBlack;
    Prntr->Canvas->Font->Size=10;
    Prntr->BeginDoc();
    int ta = 300;
    int nb = 0;
    for(unsigned i = 0 ; i < vecTemp.size() ; i++)
     {
      nb+=1;
      Prntr->Canvas->TextOut(400,ta,vecTemp[i]);
      ta+=150;
      if(nb == 60 )
         {Prntr->NewPage();
         ta=300;
         nb=0;
         }
     }
    Prntr->EndDoc();

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AC-2003] imprimer fichier .txt en paysage
    Par Kafi dans le forum VBA Access
    R�ponses: 1
    Dernier message: 05/10/2010, 10h55
  2. imprimer JTable en mode paysage automatiquement
    Par cotede2 dans le forum Composants
    R�ponses: 5
    Dernier message: 25/05/2009, 18h12
  3. [Javascript] imprimer en mode paysage?
    Par amarcil dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 12/04/2006, 19h10
  4. imprimer formulaire mode paysage
    Par LeScandinave dans le forum Contribuez
    R�ponses: 11
    Dernier message: 16/03/2006, 10h21
  5. Imprimer une page en mode paysage
    Par twizell dans le forum ASP
    R�ponses: 2
    Dernier message: 13/09/2005, 22h01

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