OVH Cloud OVH Cloud

impression python

26 réponses
Avatar
ylc
Bonjour,
J'ai r=E9cup=E9r=E9 le code d'impression de Fr=E9d=E9ric Mazue (ci dessous) =
sur
www.openvet.org et cela fonctionne bien sur Windows XP. Je voudrais
int=E9grer ce prog dans un autre prog pour imprimer le r=E9sultat d'une
requ=EAte SQL. comment substituer le r=E9sultat de ma requ=EAte au "bla bla
bla.." du dc.DrawText ? A moins que je ne puisse utiliser ce prog
comme un sous prog =E0 qui j'enverrai les donn=E9es =E0 imprimer ?
Merci d'avance =E0 celui ou celle qui voudra bien m'aider.
#!/usr/bin/python
# coding: latin1

from wx import *
true=3D1
false=3D0

class MonPrintout(Printout):
def __init__(self, titre):
Printout.__init__(self, titre)

def HasPage(self,page):
if(page <=3D 1):
return true
else:
return false

def GetPageInfo(self):
return (1, 1, 1, 1)

def OnPrintPage(self, page):
dc =3D self.GetDC()
dc.SetMapMode(MM_POINTS)
dc.DrawText("Bla bla bla bla bla....", 72, 72)
return true

class MainWindow(Frame):
def __init__(self, parent, id, title):
Frame.__init__(self, parent, -1, title, size =3D (500, 500),
style=3DDEFAULT_FRAME_STYLE|NO_FULL_REPAINT_ON_RESIZE)
id_bouton =3D NewId()
Button(self, id_bouton, 'Imprimer', Point(200, 200))
EVT_BUTTON(self, id_bouton, self.OnPrintBouton)

def OnPrintBouton(self, event):
pd =3D PrintData()
pd.SetPrinterName('')
pd.SetOrientation(PORTRAIT)
pd.SetPaperId(PAPER_A4)
pd.SetQuality(PRINT_QUALITY_DRAFT)
pd.SetColour(false) # impression noir et blanc
pd.SetNoCopies(1)
pd.SetCollate(true)
pdd =3D PrintDialogData()
pdd.SetPrintData(pd)
pdd.SetMinPage(1)
pdd.SetMaxPage(1)
pdd.SetFromPage(1)
pdd.SetToPage(1)
pdd.SetPrintToFile(false)
printer =3D Printer(pdd)
monprintout =3D MonPrintout("mon objet d'impression")
printer.Print(self, monprintout, true)

def OnCloseWindow(self, event):
self.Destroy()

class App(App):
def OnInit(self):
frame =3D MainWindow(None, -1, "Demo d'impression avec
wxPython")
self.SetTopWindow(frame)
frame.Show(true)
return true

app =3D App(0)
app.MainLoop()

6 réponses

1 2 3
Avatar
Bruno Desthuilliers
Bonjour,
ok, je crois que j'ai compris. De là à ce que je me sente à l'aise
pour écrire un prog ainsi, il y a de la marge....


Dans la pratique, il suffit de se souvenir que les fonctions définies
dans une classe se voient passer l'instance courante comme premier
argument, ce qui leur permet d'accéder à cet objet.

Ceci étant, bien que 100% objet, Python n'impose pas trop cette approche
a priori - du moins en dessous d'un certain niveau de complexité, où il
devient difficile de faire l'impasse sur ce qui constitue les fondements
même du langage.

Bref, AMHA, si tu continue à pratiquer ce langage, l'utilisation de ces
fonctionnalités viendra d'elle même petit à petit.

Cela me facilitera
par contre la lecture des exemples trouvés sur le Web. Et puis j'ai
encore du temps devant moi, il n'y a que moins de 2 mois que je me
suis mis au python.


Avec une expérience préalable dans d'autres langages ?

J'ai essayé de mettre les 3 programmes que j'ai écrit à ce jour sur un
site pour en faire peut-être profiter d'autres débutants et aussi
avoir éventuellement un feed back sur mes programmes qui ne sont
surement pas bien codés comme il faut (par contre ils fonctionnent
impec sans que j'aie réussi à les planter),


Dans l'absolu, si ils fonctionnent et sont raisonnablement robuste,
c'est déjà bien. C'est en tout cas la première étape, et pas
nécessairement la plus facile à atteindre (si l'on en juge par le nombre
de programmes qui n'atteignent même pas ce stade). Après, qu'il soit
possible de les améliorer, c'est très probable - mais là aussi, il y a
peu de programmes dont ne puisse dire la même chose !-)

Lire le code des autres et soumettre le sien à la communauté sont deux
bonnes façons de progresser. Essayer de répondre aux questions des
autres aussi, d'ailleurs - c'est souvent très instructif, même quand on
ne trouve pas la réponse...

mais sur wiki je n'ai pas
compris comment faire


En haut à droite des pages, tu a un bouton "edit" (une icone 'bulle').
Clique dessus et tu pourra modifier le contenu d'une page.

L'aide est là:
http://wikipython.flibuste.net/moin.py/HelpForBeginners
http://wikipython.flibuste.net/moin.py/HelpOnEditing

mais je crains qu'elle n'ait pas été traduite.

Avatar
ylc
Bonjour,
Pour répondre à ta question j'ai effectivement pratiqué beaucoup
d'autres langages de programmation (j'ai même écrit un langage
interprêté pour contrôleur de gestion dans ma jeunesse) depuis les
premiers ordinateurs à cartes perforées en assembleur jusqu'au C, XML,
Xhtml et CSS et j'ai même développé des architectures de développeme nt
sur mainframe sous bases de données Oracle. Je n'ai par contre
pratiquement jamais utilisé de langage objet. Il faut dire que faute
de pratique j'ai oublié 80% si ce n'est plus de ces langages sauf peut-
être SQL. C'est çà être à la retraite, on se rouille.....
Ca y est, j'ai réussi à comprendre comment mettre mes sources sur
pythonFrance : en fait il ne faut pas dépasser un certain volume sinon
ça plante sans explication.
Donc j'y ai mis mon prog finalisé de répertoire (Repert) et vai y
ajouter celui de compactage de photos jpeg car je crois qu'il peut
être bien utile malgré sa simplicité.
a+
YLC
Avatar
BertrandB

zippé) s'interrompt au bout d'un moment et rien ne passe. Il faut peut-
être un débit supérieur au mien (ADSL non dégroupé).
Bon ce n'est pas grave, j'en fait profiter mon entourage que ça
intéresse.
A+ YLC
le fait d'être dégroupé ou pas ne change RIEN au débit possible de la

ligne téléphonique utilisée. Le "jusqu'à xxMbit/s" est un piège à con
marketing du type dont les clients sont très friands. Ce piège est
d'autant amplifié que certains parlent débit ATM et d'autre de débt IP.
Si bien que 20Mbit/sMbits= parfois 1Mbits. Il est aussi absude de
choisir une offres ADSL sur le débit max de l'offre que d'acheter un
ordinateur en ne regardant que la fréquence de la CPU.
Quelque soit le fournisseur d'accès* en mode dégroupé ou pas le débit
est fonction du niveau de signal sur bruit de la ligne que l'on mesure
approximativement par l'affaiblissement de celle-ci.
On peut connaître la capacité théorique de sa ligne sur degrouptest.com.
Après ... ça dépendra du nombre de néons allumés ou de personnes
utilisant des scies sauteuses sur le parcours de la ligne ;)

Avatar
Méta-MCI \(MVP\)
Bonsoir !

Il est absurde de choisir une offres ADSL sur le débit max de l'offre


Oui et non. C'est absurde, si on compare les offres "Max" de différents
opérateurs.
Mais ce n'est pas absurde, lorsqu'on regarde les différentes offres d'un
seul opérateur.
Par exemple, Lorsque je suis passé d'une offre 512 kbd à une offre 8
Mbd, je suis passé d'un téléchargement aux environs de 60 ko/s à environ
730 ko/s ; avec la même ligne et le même routeur/modem.

@+

Michel Claveau

Avatar
pil91
Bravo et merci aux contributeurs de ce fil.
Ce cours express de POO va m'être trés utile.
Je vais le déguster à petites doses.

<<Sujet remplacé par ": tuons les contres vérités (à mort le
marketing)" par BertrandB>>
Mais pourquoi avoir renommé le sujet, il ne correspond plus au sujet
réel et surtout en voyant un tel titre je n'aurai aucune envie, (faute
de temps), le l'ouvrir.

Allez, bonnes fêtes à tous.
Philippe
Avatar
ylc
Bonjour,
Je rétabli l'objet du fil modifié intempestivement par BertrandB qui
n'a pas pris le temps de lire la discussion jusqu'au bout auquel cas
il se serait aperçu que j'ai trouvé pourquoi le transfert
s'interrompait au bout d'un moment (atteint la taille maxi) et que
j'ai finalement pu mettre mes sources sur pythonfrance.com.
YLC
1 2 3