gpt4 book ai didi

c# - 如何在 Zebra 打印机上使用 windows-1250 代码页进行打印?

转载 作者:太空狗 更新时间:2023-10-30 00:27:55 25 4
gpt4 key购买 nike

我有使用 Zebra 打印机(具体为 RW 420)进行打印的代码

StringBuilder sb = new StringBuilder();            
sb.AppendLine("N");
sb.AppendLine("q609");
sb.AppendLine("Q203,26");
//set printer character set to win-1250
sb.AppendLine("I8,B,001");
sb.AppendLine("A50,50,0,2,1,1,N,\"zażółć gęślą jaźń\"");
sb.AppendLine("P1");

printDialog1.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
byte[] bytes = Encoding.Unicode.GetBytes(sw.ToString());
bytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(1250), bytes);
int bCount = bytes.Length;
IntPtr ptr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(bCount);
System.Runtime.InteropServices.Marshal.Copy(bytes, 0, ptr, bytes.Length);
Common.RawPrinterHelper.SendBytesToPrinter(printDialog1.PrinterSettings.PrinterName, ptr, bCount);
}

RawPrinterHelper 是我从 here 获得的 Microsoft 类.

我的问题是只有 ASCII 字符是这样打印的:

za     g  l  ja  

非 ASCII 字符丢失。

有趣的是,当我打开记事本并将相同的文本放入其中并在 Zebra 打印机上打印时,所有字符都正常。

最佳答案

区别在于记事本使用的是打印机驱动程序,你绕过了它。 Zebra 打印机对使用其内置字体有一些支持。它有代码页 950 的字符集和它称为“Latin 1”和“Latin 9”的东西。关键问题是它们都不包含您需要的字形。打印机驱动程序通过向打印机发送图形而不是字符串来解决这个问题。编程手册is here顺便说一句。

我想这些打印机有某种选择来安装额外的字体,如果不是这样的话,很难在世界其他地方销售。请联系您友好的打印机供应商以获取支持和选项。

关于c# - 如何在 Zebra 打印机上使用 windows-1250 代码页进行打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4669965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com