Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
988 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Imprimer sous Borland C++ Builder

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Imprimer sous Borland C++ Builder

n°964705
AlphaZone
Posté le 28-01-2005 à 14:52:14  profilanswer
 

Bonjour à tous,
 
J'ai un sérieu problème concernant la mise en page pour l'imprimer un "document".
 
Dans ma fenêtre, j'ai un graphique et à côté des données (indépendant du graphique).
 
Il faut que je récupère les données et la courbe. Je fasse la mise en forme et je dois l'imprimer. Le problème est que je ne sais pas par où ni par quoi commencer.
 
J'espère que l'un d'entre vous pourra m'aider.
 
Merci d'avance :)

mood
Publicité
Posté le 28-01-2005 à 14:52:14  profilanswer
 

n°964837
lsdYoYo
gravity powered
Posté le 28-01-2005 à 17:15:58  profilanswer
 

Je te files un p'tit bout de code brut. Ca imprime une page avec des caractères en "Courier New" et en "Arial" plus une zoulie elipse. Le principe de l'impression est de manipuler le "Canvas" de l'imprimante comme celui d'un écran - avec les même fonction d'affichage et de dessin. Attention aux différents modèles de printeuses (résolution, N&B / couleur, ...).
Ce bout de code devrait tourner sans problème mais si tes impressions sont un minimum complexes, ça va pas être du gâteau, ne serait-ce que pour la mise à l'échelle en fonction de la résolution de la printeuse. Il va falloir trouver des outils ou t'en faire.

Code :
  1. TPrinter *Prntr = Printer();
  2. Prntr->Title = "Essai impression";
  3. Prntr->BeginDoc();
  4. Prntr->Canvas->Font->Name = "Courier New";
  5. Prntr->Canvas->Font->Size = 18;
  6. Prntr->Canvas->TextOut(1000, 1000, "ESSAI impression (Courier)" );
  7. Prntr->Canvas->Font->Name = "Arial";
  8. Prntr->Canvas->Font->Size = 12;
  9. Prntr->Canvas->TextOut(1000, 1500, "En Arial 12 pts" );
  10. Prntr->Canvas->Pen->Style = psSolid;
  11. Prntr->Canvas->Pen->Color = clBlack;
  12. Prntr->Canvas->Ellipse(500, 500, 2000, 3000);
  13. Prntr->EndDoc();

n°964908
AlphaZone
Posté le 28-01-2005 à 18:07:55  profilanswer
 

Merci pour la piste. J'espère y arriver.

n°974410
Le Veilleu​r
Posté le 07-02-2005 à 17:54:45  profilanswer
 

Bonjour,
 
J'ai suivi les pistes données ds ce topic, mais je n'arrive pas à faire ce que je veux. Je voudrais permettre à l'utilisateur de choisir son imprimante (C'est pas vraiment obligatoire), je voudrais forcer l'impression en mode paysage, forcer la taille des cellules à 10, la source étant un fichier texte.
 

Code :
  1. TPrinter * Prntr = Printer();
  2. Prntr->Title = "Impression fichier coda";
  3. Prntr->Orientation=poLandscape;
  4. Prntr->BeginDoc();
  5. //Quoi mettre ?
  6. Prntr->EndDoc();


 
Merci de votre aide

n°975477
Le Veilleu​r
Posté le 08-02-2005 à 15:25:37  profilanswer
 

up

n°977545
Le Veilleu​r
Posté le 10-02-2005 à 12:28:06  profilanswer
 

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 :
  1. TPrinter * Prntr = Printer();
  2. Prntr->Orientation = poLandscape;
  3. RichEdit1->Clear();
  4. RichEdit1->Font->Pitch=fpFixed;
  5. RichEdit1->PlainText = false;
  6. RichEdit1->Lines->LoadFromFile(Edit8->Text.c_str());
  7. RichEdit1->Print("Impression" );


 
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
 
merci

n°978227
lsdYoYo
gravity powered
Posté le 11-02-2005 à 09:00:21  profilanswer
 

Ton problème principal est la police de caractères utilisée : elle est proportionnelle (le 'l' prend moins de place que le 'W'). Tu dois choisir une police non-proportionnelle (Courrier, Courrier New, Lucida Console, Fixedsys...). Quant à la propriété des TFont "Pitch = fpFixed / fpVariable", oublie.
Si vous affectez la valeur fpVariable à la propriété Pitch d'une fonte de pas fixe, ou la valeur fpFixed à une fonte de pas variable, le système détermine ce qu'il considère correspondre le mieux à toutes les caractéristiques spécifiées de la fonte. Cela peut ne rien changer à la fonte, ou amener le système à utiliser une fonte différente ayant le pas approprié. Si, par exemple, vous utilisez la valeur fpFixed pour le pas de la fonte Serif (fonte de pas variable), l'affichage se fera avec la fonte Courrier.

n°1023080
AlphaZone
Posté le 24-03-2005 à 10:37:31  profilanswer
 

Le Veilleur a écrit :

Bonjour,
 
J'ai suivi les pistes données ds ce topic, mais je n'arrive pas à faire ce que je veux. Je voudrais permettre à l'utilisateur de choisir son imprimante (C'est pas vraiment obligatoire), je voudrais forcer l'impression en mode paysage, forcer la taille des cellules à 10, la source étant un fichier texte.
 

Code :
  1. TPrinter * Prntr = Printer();
  2. Prntr->Title = "Impression fichier coda";
  3. Prntr->Orientation=poLandscape;
  4. Prntr->BeginDoc();
  5. //Quoi mettre ?
  6. Prntr->EndDoc();


 
Merci de votre aide


 
Il faut que tu utilise l'objet PrintDialog.
 
Donc tu prend ton objet, tu le met ou tu veux dans ta fenêtre puis tu code un bouton du style "Imprimer" et tu va mettre ceci:

Code :
  1. if(PrintDiag->Execute()) // PrintDiag est le nom de l'objet
  2. {
  3.   // ... Ton code pour l'impression ...
  4. }



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Imprimer sous Borland C++ Builder

 

Sujets relatifs
Tracer une courbe sous Borland C++ Builder 5Imprimer une partie de page web...
Cherche version personnel de Borland C++[C++] Builder 5, Tray icon & nmtftp
Borland PascalConfiguration de l'installShieldExpress de Builder 6!
Valeurs d'un DBChart avec Builder C++ 6[Borland C++ Builder] - Problème avec TSaveDialog
Plus de sujets relatifs à : Imprimer sous Borland C++ Builder


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR