Ich habe ein Problem beim Drucken von Akzent- und Sonderzeichen auf einem Zebra ZD420-Drucker. Wenn ich Etiketten drucke, werden die Akzente und einige Zeichen nicht richtig angezeigt. Beispielsweise wird aus „Code Lot réduit“ „Code Lot r�duit“.
Ich verwende die ZPL-Sprache und habe bereits mehrere Lösungen ausprobiert:
Ich habe den Befehl ^CI28 für den internationalen Zeichensatz hinzugefügt.
Ich habe ^FH vor jedem Textfeld (^FD) eingefügt, das Sonderzeichen enthält.
Ich habe meine ZPL-Datei in UTF-8 gespeichert.
Ich habe versucht zu kodieren den Text in UTF-8 in meinem C#-Code, bevor ich ihn mit diesem Code an den Drucker sende:
Ich habe ein Problem beim Drucken von Akzent- und Sonderzeichen auf einem Zebra ZD420-Drucker. Wenn ich Etiketten drucke, werden die Akzente und einige Zeichen nicht richtig angezeigt. Beispielsweise wird aus „Code Lot réduit“ „Code Lot r�duit“. Ich verwende die ZPL-Sprache und habe bereits mehrere Lösungen ausprobiert: Ich habe den Befehl ^CI28 für den internationalen Zeichensatz hinzugefügt. Ich habe ^FH vor jedem Textfeld (^FD) eingefügt, das Sonderzeichen enthält. Ich habe meine ZPL-Datei in UTF-8 gespeichert. Ich habe versucht zu kodieren den Text in UTF-8 in meinem C#-Code, bevor ich ihn mit diesem Code an den Drucker sende: [code][HttpPost] public IActionResult ImprimerEtiquetteModifiee() { try { // Chemin vers le fichier ZPL d'origine string cheminFichierZPL = Path.Combine(Directory.GetCurrentDirectory(), "etiquette_lot_reduit.prn");
// Vérifier si le fichier existe if (!System.IO.File.Exists(cheminFichierZPL)) { return Json(new { success = false, message = "Fichier ZPL introuvable." }); }
// Lire le contenu du fichier ZPL string contenuZPL = System.IO.File.ReadAllText(cheminFichierZPL, Encoding.UTF8); contenuZPL = ConvertirCaracteresSpeciaux(contenuZPL);
// Remplacer les placeholders (@01, @02, etc.) par des valeurs simulées contenuZPL = contenuZPL .Replace("@01", "CodeLotReduit123") .Replace("@02", "Num OC 456") .Replace("@03", "Quantite 789") .Replace("@04", "CodePF001") .Replace("@05", "ProduitFiniXYZ") .Replace("@06", "Lot987654");
// Créer un nouveau fichier ZPL avec le contenu modifié string fichierModifie = Path.Combine(Directory.GetCurrentDirectory(), "etiquette_modifiee.zpl"); System.IO.File.WriteAllText(fichierModifie, contenuZPL, Encoding.UTF8);
// Chemin UNC de l'imprimante string cheminImprimante = @"\\FRLORBRIPRTA20P\FRLORBRIPRT8002";
// Envoyer le fichier ZPL modifié à l'imprimante via le chemin UNC using (var fileStream = new FileStream(cheminImprimante, FileMode.OpenOrCreate, FileAccess.Write)) { byte[] zplData = Encoding.UTF8.GetBytes(contenuZPL); fileStream.Write(zplData, 0, zplData.Length); }
return Json(new { success = true, message = "Étiquette imprimée avec succès via l'imprimante : " + cheminImprimante }); } catch (Exception ex) { _logger.LogError($"Erreur lors de l'impression : {ex.Message}"); return Json(new { success = false, message = "Erreur lors de l'impression : " + ex.Message }); } }
Ich habe eine C#-Anwendung, die einen SerialPort öffnet, um Scandaten von einem Zebra LS2208 Barcodescanner zu empfangen. Das Gerät ist über USB angeschlossen und verwendet das CDC-Setup von Windows...
Ich habe diese Art von Code ausprobiert, um etwas „Richtiges“ zum Generieren des von mir benötigten Labels zu finden:
GS1Barcode barcode = new GS1Barcode();
barcode.ProductCode =...