Bonjour à tous.
J'ai un texte (UTF8) dans un memo1 et je veux l'imprimer.
Quelle est la bonne méthode pour faire ça ?
Merci par avance !
Bonjour à tous.
J'ai un texte (UTF8) dans un memo1 et je veux l'imprimer.
Quelle est la bonne méthode pour faire ça ?
Merci par avance !
Bonjour !
Personnellement je n'ai jamais fait cela, mais je vois qu'il y a un article ici (en anglais) :
Using the printer
Le début de l'article est encourageant : Printing is easy in Lazarus.
Bonne chance !
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Bonjour
Tu peux te référer à cette discussion sur le forum anglais.
A+
Jérôme
- "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
- "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
- "La simplicité est la sophistication suprême" - Léonard De Vinci
- "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei
Mes projets sur Github - Blog - Site DVP
hello,
pour illustrer les deux réponses précédentes, j'ai mis en pièce jointe un petit projet qui teste les deux types d'impression :
1 - Impression simple utilisant la classe Printer du paquet Printer4Lazarus.
2 - Impression avec aperçu ,mise en page, choix de l'imprimante en utilisant le composant TfrReport du paquet lazReport
Ami calmant, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
1. En ce que concerne l'impression en utilisant le composant TfrReport du paquet lazReport :
il ya un bug si vous imprimez un texte contenant le symbol "["
par exemple essayer d'imprimer ce texte : simple text contient [ symbole
et voir une exception qui affiche comme ceci :
Project printmemo raised exception class 'EParserError' with message:
Object : Memo1
Band : MasterData1
Page : Page1
Undefined symbol : SYMBO
In file 'lr_class.pas' at line 10317
2. et pour l'impression en utilisant la classe Printer du paquet Printer4Lazarus :
le problem c'est que il retourne pas à la ligne(wordwrap) lorsque existe une ligne trés longue dans le texte à imprimer.
hello,
pour ce problème voir ici
literal
et pour :
WordWrap à True dans le TMemo ?2. et pour l'impression en utilisant la classe Printer du paquet Printer4Lazarus :
le problem c'est que il retourne pas à la ligne(wordwrap) lorsque existe une ligne trés longue dans le texte à imprimer.
sinon il y a la méthode à l'arrache :
on lance un notepad par un TProcess :
on copie le contenu du Tmemo dedans par le presse papier par programmation
et on balance un CTRL+P à NotePad par programmation
Ami calmant, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
c'est que ton Tmemo est trop large , il contient trop de caractères par lignes
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
hello,
bon je crois que j'ai trouvé une solution pour lazreport :
Il faut passer par une variable string :
1 - Editer le rapport (ex : print.lrf)
2 - Créer une nouvelle catégorie avec une nouvelle variable :
Choisir dans le menu File/Variables List
Dans la fenêtre Variables Editor cliquer sur le bouton Variables
Rentrer un nom de catégorie (exemple TMemo)
et ajouter en dessous le nom de la variable en ajoutant un espace avant le nom de la variable (ex : memo1)
Cliquer sur OK
Mettre la variable dans le rapport :
et ajouter la procédure suivante sur l'événement GetValue du composant frReport
résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant ); begin if ParName='memo1' then ParValue:= Memo1.Text; end;
projet en pièce jointe.
Ami calmant, J.P
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko
Je vient de le tester et ça marche trés bien cette fois c-à-d avec le symbole [#22320]
avec cette procedure et méthode on peut ignorer les caractères spéciaux reservés à frReport1
Merci
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