#résolu] Comment imprimer mes diagrammes
#résolu] Comment imprimer mes diagrammes
Bonjour à tous,
mon programme de dépistage du diabète est bientôt terminé, je peux créer une saisie, la modifier et la sauvegarder, je peux aussi créer des diagrammes divers sur l'écran, mais j'aimerais les imprimer et si je viens encore solliciter votre aide bienveillante, vous avez deviné que je ne sais pas le faire, il serait que la page soit la page soit en paysage, car j'ai posé 3 diagrammes sur 2 lignes.
Je vous fournis l'ensemble des programmes et la base de données à l'adresse suivante
https://www.dropbox.com/sh/oqmqtd89j7fc ... RuYSa?dl=0
Je vous remercie par anticipation pour votre aide précieuse à mes yeux.
mon programme de dépistage du diabète est bientôt terminé, je peux créer une saisie, la modifier et la sauvegarder, je peux aussi créer des diagrammes divers sur l'écran, mais j'aimerais les imprimer et si je viens encore solliciter votre aide bienveillante, vous avez deviné que je ne sais pas le faire, il serait que la page soit la page soit en paysage, car j'ai posé 3 diagrammes sur 2 lignes.
Je vous fournis l'ensemble des programmes et la base de données à l'adresse suivante
https://www.dropbox.com/sh/oqmqtd89j7fc ... RuYSa?dl=0
Je vous remercie par anticipation pour votre aide précieuse à mes yeux.
Dernière modification par Micoute le jeu. 10/mai/2018 17:23, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Comment imprimer mes diagrammes
Tu as regardé du coté de printrequestr()
http://www.purebasic.com/french/documen ... er.pb.html
http://www.purebasic.com/french/documen ... er.pb.html
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Comment imprimer mes diagrammes
Si je comprends bien, ça veut dire qu'il faut que je transforme le contenu de l'écran en image ?
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment imprimer mes diagrammes
Pourquoi pasMicoute a écrit :Si je comprends bien, ça veut dire qu'il faut que je transforme le contenu de l'écran en image ?
Code : Tout sélectionner
;Plan de l'application
Declare Start()
Declare Capture()
Declare Exit()
Start()
Procedure Start()
Protected Image = LoadImage(-1, #PB_Compiler_Home + "Examples\Sources\Data\PureBasic.bmp")
SetGadgetFont(#PB_Default, FontID(LoadFont(-1, "", 12)))
OpenWindow(0, 0, 0, 800, 600, "Essai de capture", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TextGadget(#PB_Any, 10, 20, 200, 24, "Un peu de texte")
ImageGadget(#PB_Any, 10, 50, 300, 100, ImageID(Image))
AddKeyboardShortcut(0, #PB_Shortcut_F4, 0)
;Triggers
BindEvent(#PB_Event_Menu, @Capture())
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
;Je ne sais plus de qui est cette procédure
Procedure.i CaptureScreenToImage(x.i, y.i, width.i, height.i)
Protected TmpImage.i, srcDC.i, trgDC.i
Protected BMPHandle.i, dm.Devmode
srcDC = CreateDC_("DISPLAY", "", "", dm)
trgDC = CreateCompatibleDC_(srcDC)
BMPHandle = CreateCompatibleBitmap_(srcDC, width, height)
RedrawWindow_(#Null,#Null,#Null,#RDW_INVALIDATE)
SelectObject_( trgDC, BMPHandle)
BitBlt_( trgDC, 0, 0, width, height, srcDC, x, y, #SRCCOPY)
DeleteDC_( trgDC)
ReleaseDC_( BMPHandle, srcDC)
TmpImage.i = CreateImage(#PB_Any, width, height)
StartDrawing(ImageOutput(TmpImage))
DrawImage(BMPHandle, 0, 0)
StopDrawing()
DeleteDC_(trgDC)
ReleaseDC_(BMPHandle, srcDC)
ProcedureReturn TmpImage
EndProcedure
Procedure Capture()
Protected iMyImage.i = CaptureScreenToImage(WindowX(0), WindowY(0), WindowWidth(0) + 5, WindowHeight(0) + 30)
SaveImage(iMyImage, "Capture.bmp")
EndProcedure
Procedure Exit()
End
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Comment imprimer mes diagrammes
@Micoute,
Si tu a dessiner ton diagramme avec vector, alors le code est exactement le même (attention cependant au dimensions et marges de la feuille).
Tu doit juste changer (exemple si je veux placer mes élément aux millumètre.
Ne pas oublier d'appeler pour le choix d'imprimante
pour démarrer l'envoi au buffer.
pour imprimer sur une nouvelle page
pour lancer l'imression
Si tu a dessiner ton diagramme avec vector, alors le code est exactement le même (attention cependant au dimensions et marges de la feuille).
Tu doit juste changer (exemple si je veux placer mes élément aux millumètre.
Ne pas oublier d'appeler
Code : Tout sélectionner
PrintRequester
Code : Tout sélectionner
StartPrinting
Code : Tout sélectionner
NewPrinterPage
Code : Tout sélectionner
StopPrinting
Code : Tout sélectionner
StartVectorDrawing(PrinterVectorOutput(#PB_Unit_Millimeter))
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment imprimer mes diagrammes
Il manquait l'image de la datasection, les icones ainsi que l'include ChartGadget.pbi. Ayant ce dernier fichier, J'ai testé ton application. Beau résultat.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Comment imprimer mes diagrammes
Apparemment de WayneFalsam a écrit :;Je ne sais plus de qui est cette procédure
http://forums.purebasic.com/english/vie ... 8e9#p12501
http://www.purearea.net/pb/CodeArchiv/W ... eenPart.pb
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment imprimer mes diagrammes
Apparemment ce n'est pas la meme procédure.
@Micro : Avant de faire ton commentaire tu aurais pu prendre la peine de tester l'application de Micoute pour voir ce qui était faisable.
@Micro : Avant de faire ton commentaire tu aurais pu prendre la peine de tester l'application de Micoute pour voir ce qui était faisable.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Comment imprimer mes diagrammes
Merci beaucoup pour vos réponses collégiales, normalement ma page devrait être au format paysage, je vais donc travailler la dessus, vous êtes vraiment les meilleurs car je n'attendais pas de résultat avant demain, voire après le pont du 8 mai.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment imprimer mes diagrammes
Dans ton code Diagramme AFD50.pb supprime
Procedure Start() : supprime CanvasGadget(#Cvs_Diag, 0, 0, 1070, 870)
Il ne sert à rien.
Si tu utilises le code que j'ai proposé, tu auras peut être besoin de connaitre la marge intérieur pour ne pas imprimer la bordure de la fenêtre.
Calcul hauteur du titre, épaisseur bordure en X et Y
Procedure Start() : supprime CanvasGadget(#Cvs_Diag, 0, 0, 1070, 870)
Il ne sert à rien.
Si tu utilises le code que j'ai proposé, tu auras peut être besoin de connaitre la marge intérieur pour ne pas imprimer la bordure de la fenêtre.
Calcul hauteur du titre, épaisseur bordure en X et Y
Code : Tout sélectionner
Caption = GetSystemMetrics_(#SM_CYCAPTION)
XBorder = GetSystemMetrics_(#SM_CXBORDER)
YBorder = GetSystemMetrics_(#SM_CYBORDER)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Comment imprimer mes diagrammes
Merci encore falsam pour ces bons conseils que j'ai mis en pratique.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !