Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
rpc
Bonjour

J'essaie d'imprimer des caract=E8res accentu=E9s (avec la commande s=C9crit=
)
sur une imprimante mobile ONeil 8i mais ceux-ci sont remplac=E9s par
d'autres caract=E8res. Je croyuais que le probl=E8me pouvait provenir du
fait que le Windows Mopbile est en Unicode mais le probl=E8me est le
m=EAme que j'imprime en mode test directement sur le port s=E9rie de mon
PC (ANSI) ou en mode r=E9el avec le PocketPC via Bluetooth (Unicode).

J'ai test=E9 une application fournie par ONeil pour imprimer tous les
caract=E8res ASCII disponibles sur cette imprimante (via le port s=E9rie
de mon PC) et les caract=E8res accentu=E9s sont bien imprim=E9s. Je suis a=
u
Qu=E9bec et nus utilisons le 'code page 437': par exemple, le '=E9' =3D
Caract(130), '=E0' =3D Caract(133), etc.

Quelqu'un aurait-il une solution =E0 me proposer ?

Richard

5 réponses

Avatar
patrice
faut convertir le jeu windows (ansi) vers l'ascii avers AnsiVersOem()

"rpc" a écrit dans le message de
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
Avatar
rpc
On 25 juin, 02:31, "patrice" wrote:
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
Avatar
patrice
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" a écrit dans le message de
news:
On 25 juin, 02:31, "patrice" wrote:
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
Avatar
magic-thib
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
Avatar
rpc
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