Forum Clubic

[C/C++/Builder] Pb de Canvas avec un TPrinter

salut a tous

voila j’ai besoin d’imprimer un document issu d’un TImage sous builder
dans ce TImage j’insere des infos provennant d’une base de donnée par le biais du canvas
le pb est que je n’arrive pas a insérer le canva de mon TImage dans mon TPrinter…comment dire au TPrinter d’imprimer le TImage?
pouvez vous m’aider?

[cpp]
void __fastcall TFormImprimerBordereau::Button1Click(TObject *Sender)
{
TPrinter *Prntr = Printer();
String NumPort = ObjAdministration->RecupererPortBalance();

/On démarre un job d’impression********/
Prntr->BeginDoc();
ImgBordereau->Canvas->TextOutA(200,200,NumPort); //canva de mon TImage

    //Prntr->Canvas->TextOutA(800,200,NumPort); //test avec un mot placé au hasard

/Lancement de l’impression sur papier**/
Prntr->EndDoc();
}[/cpp]

TPrinter possède une propriétée canvas donc tu envoies ton image sur ce canvas avec un draw par exemple ce n’est pas plus compliqué.

une doc complète pour l’impression (c’est pour delphi mais c’est exactement pareil sous builder)

je ne vois pas comment passer le canva de l’imager a mon TPrinter, en effet j’ai beau essayé différentes méthodes, l’impression se lance mais ce n’est pa le TImage qui es imprimé mais une feuille vierge.

[cpp]
void __fastcall TFormImprimerBordereau::Button1Click(TObject *Sender)
{
TPrinter *Prntr = Printer();
String NumPort = ObjAdministration->RecupererPortBalance();
this->PrintScale = poNone;
TCanvas *pCanvas = ImgBordereau->Canvas;

/On démarre un job d’impression********/
Prntr->BeginDoc();

    pCanvas->TextOutA(800,200,NumPort);

    Prntr->Canvas = pCanvas;  -->erreur a cet endroit


   /* ImgBordereau->Canvas->TextOutA(200,200,NumPort);
   // Prntr->Canvas->Draw(0,0,(TGraphic*)ImgBordereau);
    Prntr->Canvas->operator = &ImgBordereau->Canvas;
    //Prntr->Canvas->TextOutA(800,200,NumPort);
    */

/Lancement de l’impression sur papier**/
Prntr->EndDoc();
}[/cpp]

tu ne passes pas le canvas de TImage, tu dessines ton image sur le canvas de ton TPrint

ça ne marche pas ça ?

Prntr->Canvas->Draw(0,0,(TGraphic*)ImgBordereau);

eh non malheureusement je ne sais pa pk, mais cette ligne ne fait rien du tout…lorsque l’impression se lance, la feuille imprisée est vierge et mon TImage ne s’imprime pas…

lis ça peut-être http://bdn.borland.com/article/0,1410,22018,00.html