PureBasic

Forums PureBasic
Nous sommes le Ven 06/Déc/2019 6:12

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 
Auteur Message
 Sujet du message: #résolu] Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 10:06 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2208
Localisation: 50200 Coutances
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/oqmqtd89j7fchf4/AADTNtS6QTac6-bZxODmRuYSa?dl=0

Je vous remercie par anticipation pour votre aide précieuse à mes yeux.

_________________
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Dernière édition par Micoute le Jeu 10/Mai/2018 17:23, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 10:58 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 8785
Tu as regardé du coté de printrequestr()
http://www.purebasic.com/french/documentation/Examples/Printer.pb.html

_________________
~~~~Règles du forum ~~~~
.: Ar-S :. Tour + portable W10 x64 PB 5.4x / 5.6x
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
RESIZER GOLD : Mon logiciel de redimensionnement par lot 100% PB


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 11:06 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2208
Localisation: 50200 Coutances
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 GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 14:31 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
Micoute a écrit:
Si je comprends bien, ça veut dire qu'il faut que je transforme le contenu de l'écran en image ?
Pourquoi pas :wink:
Code:
;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
A toi d'ajuster les coordonnées de capture si tu ne veux pas avoir les bordures de la fenêtre.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 14:37 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1662
Localisation: Belgique
@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
Code:
PrintRequester
pour le choix d'imprimante
Code:
StartPrinting
pour démarrer l'envoi au buffer.
Code:
NewPrinterPage
pour imprimer sur une nouvelle page
Code:
StopPrinting
pour lancer l'imression
Code:
StartVectorDrawing(PrinterVectorOutput(#PB_Unit_Millimeter))

_________________
Windows 10 64 bits PB: 5.70 ; 5.71 beta 2


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 14:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
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.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 14:57 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6659
Localisation: Isere
Falsam a écrit:
;Je ne sais plus de qui est cette procédure
Apparemment de Wayne :wink:

http://forums.purebasic.com/english/vie ... 8e9#p12501
http://www.purearea.net/pb/CodeArchiv/W ... eenPart.pb

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 15:02 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
Apparemment ce n'est pas la meme procédure. :wink:

@Micro : Avant de faire ton commentaire tu aurais pu prendre la peine de tester l'application de Micoute pour voir ce qui était faisable.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 15:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2208
Localisation: 50200 Coutances
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 GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 15:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6860
Localisation: IDF (Yvelines)
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
Code:
Caption = GetSystemMetrics_(#SM_CYCAPTION)
XBorder = GetSystemMetrics_(#SM_CXBORDER)   
YBorder = GetSystemMetrics_(#SM_CYBORDER)

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Comment imprimer mes diagrammes
MessagePosté: Dim 06/Mai/2018 19:12 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 02/Oct/2011 16:17
Messages: 2208
Localisation: 50200 Coutances
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 GT 640 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.62, 5.70 LTS
Un homme doit être poli, mais il doit aussi être libre !


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye