Voila, suite a un traitement, j'ai une image que je suis succeptible d'imprimer, mais j'aimerais savoir comment on fait pour l'imprimer, quelque soit la taille, sur une seule page!
Voila, suite a un traitement, j'ai une image que je suis succeptible d'imprimer, mais j'aimerais savoir comment on fait pour l'imprimer, quelque soit la taille, sur une seule page!
Tu peut utiliser la classe TPrinter, il suffit de mettre dans le canvas de ton TPrinter une image grace a la fonction DrawFocusRect, en lui sp�cifiant le rectangle dans lequel tu veut qu'elle s'affiche (Objet TRect qui sp�cifie les taille de la largeur et de la hauteur)
en regardant la classe TPrinter, j'ai vu canvas comme tu me l'avais dit
si je met le code la, ca marcherai? Image1 est une image avec proportional true
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm1::Button1Click(TObject *Sender) { TPrinter Prntr = Printer(); Image1->Width = Prntr->PageWidth; Image1->Height = Prntr->PageHeight; Prntr->BeginDoc(); Prntr->Canvas = Image1->Canvas); Prntr->EndDoc(); }
Tu peut essayer, a mon avis ca imprimerait bien l'image mais cela ne serai pas proportionnel a ta feuille, pour cela il faut vraiment utiliser la fonction que je t'ai donn�.
je travaillerai ca demiain, je mettrait mon resultat quand j'aurai troouv�^^
Excuse moi, la fonction est StretchDraw
Le code n'est pas tr�s compliqu� :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm1::Button1Click(TObject *Sender) { TPrinter Prntr = Printer(); TRect Rect ; //Definir le coordonnée du Rect. Image1->Width = Prntr->PageWidth; Image1->Height = Prntr->PageHeight; Prntr->BeginDoc(); Prntr->Canvas->StretchDraw(Image1->Picture,Rect); Prntr->EndDoc(); }
J'i essay� ton code, mais il ne fonctionne pas, tout d'abord, il faut metreEnvoy� par pottiez
ensuite pour la ligne
Code : S�lectionner tout - Visualiser dans une fen�tre � part TPrinter *Prntr = Printer();j'ai plein d'erreur, alors que faut-il mettre a la place pour avoir une bonne compilation?
Code : S�lectionner tout - Visualiser dans une fen�tre � part Prntr->Canvas->StretchDraw(Image1->Picture,Rect);
Effectivement, il manqu� une * d�sol�.
Quel sont les messages d'erreur ?Envoy� par Galkir
Les erreurs sont
Touste les erreurs sont a la ligneEnvoy� par Erreurs
Code : S�lectionner tout - Visualiser dans une fen�tre � part Prntr->Canvas->StretchDraw(Image1->Picture,Rect);
Euh normal, j'ai invers� le Rect et le Image1->Picture, il faut remplacer cette ligne par
D�sol� encore une fois
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 Prntr->Canvas->StretchDraw(Rect,Image1->Picture);
Code : S�lectionner tout - Visualiser dans une fen�tre � part Prntr->StretchDraw(Rect, Image1->Picture->Bitmap);
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)
merci, la compilation fonctionne, mais a l'execution, aucune image n'apparait.
j'utilise cute pd writer (pour ne pas gacher de feuilles) et il me cr� une page blanche de 600ko
j'ai quand m�me essayer de trouver ue autre solution, mais celle ci s'av�re etre longue, et la taille de l'image n'est pas tres grande (environ 6*4 cm pour une image en 1392*1040 pixels.taille = 5.93Mo)
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 TPrinter *Prntr = Printer(); TRect rec = Rect(100, 100, Prntr->PageWidth - 100, Prntr->PageHeight - 100); if (Image1->Width > Prntr->PageWidth) { Image1->Width = Prntr->PageWidth - 200; Image1->Height = (Prntr->PageWidth - 200) * (HeightImage1 / WidthImage1); } if (Image1->Height > Prntr->PageHeight) { Image1->Width = (Prntr->PageHeight - 200) * (WidthImage1 / HeightImage1); Image1->Height = Prntr->PageHeight - 200; } Prntr->BeginDoc(); for (int y = 0; y < Image1->Height; y++) { for (int x = 0; x < Image1->Width; x++) { Prntr->Canvas->Pixels[x+200][y+200] = Image1->Canvas->Pixels[x][y];//StretchDraw(rec,Image1->Picture->Bitmap); } } Prntr->EndDoc();
Je comprand pas trop pourquoi ca fonctionne pas, je verifirai sur mon programme ce soir, je ne l'ai pas avec moi au boulot.
J'ai mal pr�ciser les choses :
pour la lignej'ai les erreurs
Code : S�lectionner tout - Visualiser dans une fen�tre � part Prntr->Canvas->StretchDraw(Rect,Image1->Picture);et pour la ligne[C++ Avertissement] fich_etude.cpp(82): W8018 Affectation de int en TColor
[C++ Erreur] fich_etude.cpp(116): E2034 Impossible de convertir 'TPicture * const' en 'TGraphic *'
[C++ Erreur] fich_etude.cpp(116): E2342 Mauvaise correspondance de type dans le param�tre 'Graphic' ('TGraphic *' d�sir�, 'TPicture *' obtenu)la compilation se fait, mais je n'ai aucun r�sultats sur ma page pdf!
Code : S�lectionner tout - Visualiser dans une fen�tre � part Prntr->Canvas->StretchDraw(Rect, Image1->Picture->Bitmap);
Partager