WM10: Problème d'impression de caractères accentués

Le
rpc
Bonjour

J'essaie d'imprimer des caractères accentués (avec la commande sÉcrit=
)
sur une imprimante mobile ONeil 8i mais ceux-ci sont remplacés par
d'autres caractères. Je croyuais que le problème pouvait provenir du
fait que le Windows Mopbile est en Unicode mais le problème est le
même que j'imprime en mode test directement sur le port série de mon
PC (ANSI) ou en mode réel avec le PocketPC via Bluetooth (Unicode).

J'ai testé une application fournie par ONeil pour imprimer tous les
caractères ASCII disponibles sur cette imprimante (via le port série
de mon PC) et les caractères accentués sont bien imprimés. Je suis a=
u
Québec et nus utilisons le 'code page 437': par exemple, le 'é' =
Caract(130), 'à' = Caract(133), etc.

Quelqu'un aurait-il une solution à me proposer ?

Richard
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
patrice
Le #14497421
faut convertir le jeu windows (ansi) vers l'ascii avers AnsiVersOem()

"rpc" news:
Bonjour

J'essaie d'imprimer des caractères accentués (avec la commande sÉcrit)
sur une imprimante mobile ONeil 8i mais ceux-ci sont remplacés par
d'autres caractères. Je croyuais que le problème pouvait provenir du
fait que le Windows Mopbile est en Unicode mais le problème est le
même que j'imprime en mode test directement sur le port série de mon
PC (ANSI) ou en mode réel avec le PocketPC via Bluetooth (Unicode).

J'ai testé une application fournie par ONeil pour imprimer tous les
caractères ASCII disponibles sur cette imprimante (via le port série
de mon PC) et les caractères accentués sont bien imprimés. Je suis au
Québec et nus utilisons le 'code page 437': par exemple, le 'é' Caract(130), 'à' = Caract(133), etc.

Quelqu'un aurait-il une solution à me proposer ?

Richard
rpc
Le #14497311
On 25 juin, 02:31, "patrice"
faut convertir le jeu windows (ansi) vers l'ascii avers AnsiVersOem()



Les fonctions 'OEM' ne sont pas disponibles en Windev Mobile (V10).
Il faudrait plutôt utiliser les fonctions 'Unicode', mais l'imprimante
ne reconnaît pas les bons caractères. Chez vous le 'é' est obtenu
avec le Caract(233) alors qu'ici (avec le 'code page 437') c'est
plutôt Caract(130). Je vais essayer de bidouiller une impression
caractère par caractère en remplaçant les caractères accentués pa r
leur équivalent du 'code page 437'. Bizarrement, la fonction
'Remplace(txt, caract(233), caract(130))' remplace le 'é' par le même
'é' !

Richard
patrice
Le #14497301
Il faut convertir le code page 850 de windows francais, vers le code page
437 (ascii, msdos) qui est largement utilisé par les périphériques.
pour les 127 premiers, il me semble que c'est kif,kif
apres, faudrait faire une table de correspondance


"rpc" news:
On 25 juin, 02:31, "patrice" Les fonctions 'OEM' ne sont pas disponibles en Windev Mobile (V10).
Il faudrait plutôt utiliser les fonctions 'Unicode', mais l'imprimante
ne reconnaît pas les bons caractères. Chez vous le 'é' est obtenu
avec le Caract(233) alors qu'ici (avec le 'code page 437') c'est
plutôt Caract(130). Je vais essayer de bidouiller une impression
caractère par caractère en remplaçant les caractères accentués par
leur équivalent du 'code page 437'. Bizarrement, la fonction
'Remplace(txt, caract(233), caract(130))' remplace le 'é' par le même
'é' !

Richard
magic-thib
Le #17635751
rpc a écrit le 24/06/2008 à 19h02 :
Bonjour

J'essaie d'imprimer des caractères accentués (avec la commande sÉcrit=
)
sur une imprimante mobile ONeil 8i mais ceux-ci sont remplacés par
d'autres caractères. Je croyuais que le problème pouvait provenir du
fait que le Windows Mopbile est en Unicode mais le problème est le
même que j'imprime en mode test directement sur le port série de mon
PC (ANSI) ou en mode réel avec le PocketPC via Bluetooth (Unicode).

J'ai testé une application fournie par ONeil pour imprimer tous les
caractères ASCII disponibles sur cette imprimante (via le port série
de mon PC) et les caractères accentués sont bien imprimés. Je suis a=
u
Québec et nus utilisons le 'code page 437': par exemple, le 'é' =
Caract(130), 'à' = Caract(133), etc.

Quelqu'un aurait-il une solution à me proposer ?

Richard


Bonjour Richard,
J'utilise Windev mobile ainsi qu'une imprimante o'neil 4ti. Je ne réussis pas à faire fonctionner l'impression. Il semble que tu es réussis à le faire. Comment as tu fais ? peux tu me donner un petit exemple de code afin que je puisse m'en inspiré. Merci d'avance
rpc
Le #17663011
Bonjour

Voici la procédure qui fonctionne. Ce n'est pas très élégant, mais ça
imprime les bons caractères...

// Impression d'une ligne sur le port série
PROCEDURE Imprime_RS232(Vle_NumPort, Vlc_Texte)
Vle_TailleEcrite est un entier
Vle_ASCII est un entier
i est un entier
Vlc_Texte_Tmp est une chaîne

SI EnModeTest ALORS Info("Texte (Unicode): ", Vlc_Texte)
POUR i = 1 A Taille(Vlc_Texte)
Vle_ASCII = Asc(Milieu(Vlc_Texte, i, 1))
SI Vle_ASCII = 233 ALORS Vle_ASCII = 130 // remplace les 'é' par le
caractère ASCII (code page 437)
SI Vle_ASCII = 232 ALORS Vle_ASCII = 138 // remplace les 'è'
SI Vle_ASCII = 224 ALORS Vle_ASCII = 133 // remplace les 'à'
SI Vle_ASCII = 234 ALORS Vle_ASCII = 136 // remplace les 'ê'
SI Vle_ASCII = 226 ALORS Vle_ASCII = 131 // remplace les 'â'
SI Vle_ASCII = 231 ALORS Vle_ASCII = 135 // remplace les 'ç'
SI Vle_ASCII = 244 ALORS Vle_ASCII = 147 // remplace les 'ô'
SI Vle_ASCII = 251 ALORS Vle_ASCII = 150 // remplace les 'û'
SI Vle_ASCII = 249 ALORS Vle_ASCII = 151 // remplace les 'ù'
// Ajouter d'autres équivalences si nécessaire
Vlc_Texte_Tmp += Caract(Vle_ASCII)
FIN
Vle_TailleEcrite = sEcrit(Vle_NumPort, UnicodeVersAnsi(Vlc_Texte_Tmp))

// tester ce qui a pu être écrit
SI Vle_TailleEcrite = 0 ET Vlc_Texte <> "" ALORS
. . .
FIN
RENVOYER Vrai
Publicité
Poster une réponse
Anonyme