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)
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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é.
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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(); }
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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);
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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.
Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Lisez le magazine de developpez.com. Mes tutos : http://pottiez.developpez.com
La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français
N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .
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);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager