C# problemer med æøå i utskrift
Forum --> .NET
|
Author |
Comment |
Erik Bergh
|
C# problemer med æøå i utskrift |
08.07.2009 14:00:23
|
Hei Jeg driver å utvikler et program som skal skrive ut strekkoder. Printeren en er Intermec PF8t som er en termisk skriver. Denne tar i mot en raw-fil som er ren tekst med diverse koder for å formatere teksten riktig. For å sende raw-data til printeren har jeg tatt i bruk objektet RawPrinterHelper, http://support.microsoft.com/kb/322091 . Dette gjør om teksten til ANSI-bytes før den sender det til printerne. Jeg har prøvd: - byttet ut alle ansi-charsettingen i objektet med unicode. Da er det ingen endring - byttet Marshal.StringToCoTaskMemAnsi til Marshal.StringToCoTaskMemUni (da printer den ikke) - Driver nå å ser på andre muligheter å konvertere stringen/sette charset på den før den sendes til objektet men uten hell. Noen tips til dette?
|
Ronny Hansen
|
RE:C# problemer med æøå i utskrift |
08.07.2009 14:25:53
|
|
Normalt ville jeg ikke brukt spoolern, men gått direkte mot LPTx eller COMx
Og da må man passe på å konvertere Unicode stringer til byte array (med riktig CodePagefor å få æøå korrekt.).
Alternativ kan man sikkert få fatt i en egen driver for denne printern (f.eks. OPOS) som håndterer lav nivå detaljene.
|
Elin Reiholm
|
RE:C# problemer med æøå i utskrift |
08.07.2009 16:44:45
|
Jeg ville også kjørt direkte mot com eller socket.
For å få ÆØÅ til å fungere måtte jeg bruke encoding klassen i .net, og sette den til codepage 865 som er norsk.
eks.
Encoding enc = Encoding.GetEncoding(865); string tekst = "æøå"; byte[] encBytes = enc.GetBytes(tekst);
deretter sender du encBytes til socket eller hva du skal kommunisere med...
-Elin- |
Erik Bergh
|
RE:C# problemer med æøå i utskrift |
29.07.2009 14:20:40
|
Heisann. Etter ferien satte jeg meg ned med dette problemet igjen og det viste seg at problemet var raw-stringen jeg sendte til printeren. Ikke vet jeg hvorfor, da disse ble formatert i programmet bartender, og der ble det æøå i utskrift.
Løsningen var i alle fall å endre første linje i strengen jeg sendte til printeren fra "I8,1,001" til "I8,E,001"
Fant svaret da jeg droppet å tenke på æøå og søkte bare etter codepage og rawprinterhelper. Da fant jeg en tyrker med "samme" problem. |
Copyright (C) 2006 Norwegian .NET User Group