Gambas France BETA


Pas de compte ? Incription

Imprimer sous GB3 [RESOLU]

Ce sujet est résolu.

123
AuteurMessages
LanoueC#1 Posté le 24/6/2010 à 15:25:00
bonjour

1
' Draw.Begin(Printer) : ERREUR ' ' MonImage = WebView1.Grab() ' Draw.Picture(MonImage, 10, 10) ' ' Draw.End


retourne l'erreur not a drawable object!

Sous GB3 l'impression est différente de GB2?

Imprimer a partir du webwiew : possible, impossible?

Comment lancer le panneau d'impression du système?

Merci
LanoueC
LanoueC#2 Posté le 24/6/2010 à 16:21:00
j'ai changé par ceci :
1
Printer1.OutputFile = chemin & "/EssaiImpression.html" Printer1.Configure



Mais bon l'impression ne se lance pas

Ou est l'astuce?
Merci
LanoueC
spheris#3 Posté le 24/6/2010 à 21:38:00
Lanouec,
peux tu préciser :
MonImage est une picture ou une Image ?
LanoueC#4 Posté le 24/6/2010 à 21:44:00
Sphéris

MonImage AS Picture
spheris#5 Posté le 24/6/2010 à 21:52:00
Lanouec,
c'est curieux mais dans la V2, la doc indique clairement que grab est une Function et qu'elle renvoit une donnée de type PICTURE.
http://gambasdoc.org/help/comp/gb.qt/control/grab?fr

Mais pas dans la V3 :
http://gambasdoc.org/help/comp/gb.qt4/control/grab?fr&v3
ce n'est plus une FUNCTION mais une SUB.
de plus le type de renvoi n'est plus spécifié.
;)
LanoueC#6 Posté le 24/6/2010 à 22:09:00
sphéris
oui dans GB2 j'ai aucun soucis

mais dans GB3 des que je veux faire un grab j'ai un soucis

MonImage = WebView1.Grab() ERREUR : picture attendu a la place de void

j'ai essayé avec form.grab() et j'ai la meme erreur
!!!


je voudrais faire ceci :
MonImage.Save(chemin & "/GrabImpression.svg")
Printer1.Configure()
Printer1.Print

puis dans : Public Sub Printer1_Begin()
'hSvgImage.Paint
hSvgImage = SvgImage.Load(chemin & "/GrabImpression.svg")
Paint.Begin(hSvgImage)


Mais ca bloque sur la capture Grab() qui fonctionne tout bien sur GB2

??? idéesssssssssssss
merci
LanoueC
LanoueC#7 Posté le 24/6/2010 à 22:12:00
Sphéris

ce n'est plus une FUNCTION mais une SUB.


et donc la difference dans l'utilisation de Grab() se dérouole comment?
Comment utiliser Grab() si c'est une sub au lieu d'une fonction?
LanoueC#8 Posté le 24/6/2010 à 23:10:00
1
ImageAimprimer = WebView1.Screenshot() ImageAimprimer.Save(chemin & "/ScreenShot.png")' Printer1.Configure() Printer1.Print


le fichier ScreenShot.png est bien crée

dans la console :
1
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: Aucun fichier ou dossier de ce typeQFileSystemWatcher: failed TO add paths: /home/LanoueC/.config/ibus/busBus::open: Can NOT get ibus-daemon's address. IBusInputContext::createInputContext: no connection to ibus-daemon


RIEN ne lance l'impression

et quand je quiite l'application, l'imprimante envoie une feuille vierge!!


IBus ? erreur?
gambix#9 Posté le 25/6/2010 à 10:22:00
Faire simple !tout simplement par ce que tu oublit un peu dessiner l'image sur la page non ?


dans l'evenement Print_Draw... bon c'est paint qu'il faut utiliser ... et dessiner une image est pas de la tarte :) en fait c'est un rectangle et une texture

je vais faire voir via gb.report :

1
PUBLIC SubInitandPrintDIM hImgR AS NEW RportImage(Report)hImgR.Picture = Picture["monimage"] 'j'ai un creux de mémoire je ne sais plus si c'est un path qui est attendu ou un picture)hImg.Autoresize = TRUE 'la on dit a l'image d'avoir sa taille d'origineReport.Padding = "2 cm" 'ça c'est la margePrinter.PrintENDPUBLIC SUB Printer_BeginENDPUBLIC SUB Printer_Draw()Report.Paint(1)END


NOTA :

Je suis encore en train de bosser gb.Report ... alors bon c'est po parfait


et aussi toute la partie haute peut être expérimentée en directe sour les dernière svn ::

cad

choisir gb.report comme composant
faire nouveau>etat

ajouter un reportimage via la toolbox, et choisir l'image
mettre l'indicateur de demarage sur le dit report
et F5

la un preview va apparaitre ...

tout ça est en cour de construction ... c'est vraiement un chantier difficile, car on explore des concept nouveau
Moins de texte dans une signature c'est agrandir son espace.
LanoueC#10 Posté le 25/6/2010 à 13:09:00
Merci Gambix

Je vais voir si je m'en sors avec tes explications


Question dans GB3 il est question de *.svg
ex de GB3 :
1
DIM hSvgImage AS SvgImagehSvgImage = SvgImage.Load("~/gambas.svg")Paint.Begin(hSvgImage)Paint.Brush = Paint.RadialGradient(200, 140, 40, 215, 115, [Color.RGB(255, 0, 0, 64), Color.White], [1.0, 0.1])Paint.Arc(200, 140, 40)Paint.FillPaint.EndhSvgImage.Save("~/gambas with red ball.svg")


si je fais :
1
fichierAimprimer = OPEN chemin & "/GrabImpression.svg" FOR CREATE fichierAimprimer = OPEN chemin & "/GrabImpression.svg" FOR WRITE ImageAimprimer = WebView1.Screenshot() ImageAimprimer.Save(chemin & "/ScreenShot.svg")


Cela me renvoit Format de fichiers Inconnu!!!


Bon apres midi
LanoueC
LanoueC#11 Posté le 25/6/2010 à 13:41:00
Est on obligé d'utiliser report pour imprimer en GB3

LanoueC#12 Posté le 2/7/2010 à 15:22:00
Bonjour à tous
Ben euh je suis toujours en problème
voici le code!
Ou est ce que j'ai péché?

1
PUBLIC SUB Button1Imprimer_Click() ImageScreenShot = WebView1.Screenshot() 'screenshot as picture ImageAimprimer = ImageScreenShot.Image 'transforme picture en image ImageAimprimer.Save(chemin & "/ScreenShot.png") Printer1.OutputFile = chemin & "/FeuilleAimprimer.pdf" Printer1.Configure Printer1.PrintEndPublic Sub Printer1_Begin() 'Draw.Begin(hImage) 'ne sert a rienEndPublic Sub Printer1_End() 'Draw.End(hImage) 'ne sert a rienEndPublic Sub Printer1_Draw() Dim X, Y, W, H As Float Dim hBrush As PaintBrush Dim hImage As Image hImage = Image.Load(chemin & "/ScreenShot.png") X = 20 Y = 40 W = 200 H = 200 Paint.Begin(hImage) 'Code des exemples hBrush = Paint.Image(hImage) hBrush.Translate(X, Y) hBrush.Scale(W / hImage.W, H / hImage.H) Paint.Brush = hBrush Paint.Rectangle(X, Y, W, H) Paint.Fill Paint.Brush = Paint.Color(Color.RGB(255, 127, 127, 153)) Paint.Arc(X, Y, 10) Paint.Fill Paint.End()End


Je tourne en rond, rien ne sort : feuille blanche
Printer1_draw : a chaque page
printer1_begin au debut de l'impression : je pense que c'est là ou j'oublie un truc !! mais quoi?

Par contre ce code adapté sur une draw cela fonctionne donc! je sais pas
Merci
LanoueC
LanoueC#13 Posté le 5/7/2010 à 21:11:00
Pas d'idées?
:affraid: :?: :no:
spheris#14 Posté le 6/7/2010 à 10:26:00
Lanouec,
En plein apprentissage de Gambas, je me concentre essentiellement sur GB2.

A part quelques irréductibles :geek: qui utilisent GB3 en beta test, et qui sont probablement en vacances, il n'y a que peu de monde qui utilise cette version pour le moment.

A titre d'information pour ma culture générale, pourquoi n'essaies tu pas en GB2 ?
bonne semaine

;)
gambix#15 Posté le 6/7/2010 à 11:35:00
Faire simple !Lanouec ... Je vais tenté de te pondre un tutoriel assez rapidement, que je placerais dans les sources. C'est vrai que la ça manque cruellement

cependant ... imagine tu la taille en pixel d'une page ? quand on dit 1600 dpi ... ça fait 1600 pixel par pouces et toi tu a 200 pixel pour 96dpi a l'écran... la résolution d'une imprimante et d'un écran c'est pas la même chose... tu peut si tu veut t'inventer un ratio de convertion :


dim monratio as float = Paint.resolutionx/96

tu n'a qu'a faie mavaleur*monratio pour avoir ce que tu avais a l'écran sur l'imprimante.

Moins de texte dans une signature c'est agrandir son espace.
123