C# 汉字打印报错
--------------------编程问答-------------------- temp1是文件名 --------------------编程问答-------------------- 查看GETFONTHEX的参数说明 --------------------编程问答-------------------- temp1是个临时文件,要与后面的sBarCodeCMD = sb1.ToString() + "^XA^MD30^LH20,20^FO20,20^XGtemp1,1,1^FS^XZ";中的temp1相对就 --------------------编程问答-------------------- --------------------编程问答-------------------- temp1 应该是GETFONTHEX这个函数产生的一个图片文件,你要先上传到zebra打印机的dram中
才可以用XG命令调用!
有兴趣可以看看我写的一个E-LABEL完美支持zebra打印的ZPLII语言。二次开发也很简单!
http://www.ync-tech.com
--------------------编程问答-------------------- 但是temp1怎么生成呢,我需要些代码,谢谢 --------------------编程问答-------------------- GETFONTHEX --------------------编程问答--------------------
有没有针对斑马的,谢谢 --------------------编程问答-------------------- GETFONTHEX他是只产生一个单色的图片,跟用什么打印机没有关系。
也就是你程序用GETFONTHEX函数产生一张图片,你把图片上传到打印的dram中,
然后在用指令来调用图片。
--------------------编程问答-------------------- --------------------编程问答-------------------- http://topic.csdn.net/u/20100329/17/a7abd929-e04f-4639-80e9-9b82865c3369.html --------------------编程问答-------------------- 不好意思搞错了
GETFONTHEX("测试","宋体","temp1",0,30,20,0,0,sb1);
这个函数产生的是图片指令,内容放到sb1中,
这个temp1是在图片指令中的图片名称
你可以下个断点看看sb1的内容就明白了
--------------------编程问答--------------------
temp1到底怎么建成的啊 --------------------编程问答--------------------
你可以下个断点看看sb1的内容就明白了
temp1是这个GETFONTHEX函数产生的,这个函数据功能是把汉字转成图片指令。
你下断点看sb1的内容了吗?
--------------------编程问答-------------------- temp1也就是GETFONTHEX产生图片指令中的名称,
"^XA^MD30^LH20,20^FO20,20^XGtemp1,1,1^FS^XZ";
这个就是调用打印指令打印图片的!
你最好先是看看ZPLII相关指令 --------------------编程问答--------------------
这个地方它报错“int i1 =GETFONTHEX("测试", "宋体", "temp1", 0, 30, 20, 0, 0, sb1);”尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 --------------------编程问答--------------------
你可以留下你的联系方式吗?这个我有点不太懂,一直搞不出来,多谢啦。我的qq:1804366993 --------------------编程问答-------------------- GETFONTHEX据我所知就是用在斑马上的
给你一个我用过的测试程序:
public static extern int GETFONTHEX(
string outstr,
string fontname,
string outstrname,
int orient,
int height,
int width,
int bold,
int italic,
StringBuilder hexbuf);//这个是定义
引用如下:
FileStream fsg = new FileStream(Application.StartupPath + "\\1.text", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fsg);
StringBuilder hexbuf = new StringBuilder(21 * 1024);
int count;
count = GETFONTHEX("测试简体中文", "宋体", "test01", 0, 5, 30, 0, 0, hexbuf);
if (count > 0)
{
sw.Write(hexbuf.ToString().Substring(0, count));
count = 0;
}
count = GETFONTHEX("测试繁体中文", "宋体", "test02", 0, 5, 30, 0, 0, hexbuf);
if (count > 0)
{
sw.Write(hexbuf.ToString().Substring(0, count));
count = 0;
}
sw.Close();
FileStream fsg2 = new FileStream(Application.StartupPath + "\\1.text", FileMode.Open, FileAccess.Read);
StreamReader srg2 = new StreamReader(fsg2);
graph = srg2.ReadToEnd() + "\r\n";
srg2.Close();
我在应用程序的根部目录下创建一个1.text文件,当然文件的后缀不重要,也可以是1.txt,然后用GETFONTHEX将汉字转换为打印机的代码test01和test02,保存到1.text文件文件中,保存的结果是:
当你要打印它是就使用ZPL语言
^XA^MD30^LH20,20^FO20,20^XGtest01,1,1^FS^XZ
^XA^MD30^LH20,100^FO20,20^XGtest02,1,1^FS^XZ
--------------------编程问答-------------------- 保存的结果我发不上去,报告说有非法字符!
--------------------编程问答-------------------- 学习。这是个实际工作当中的问题。值得学习 --------------------编程问答-------------------- 你更新一下GETFONTHEX这个函数用的dll看看呢!
--------------------编程问答-------------------- 我什么错也不报 但是打印机就是不动 而且 这个里面怎么设置是那个打印机呢 我是斑马的zm400 求解答 --------------------编程问答-------------------- 学习了,高手还是蛮多的 --------------------编程问答-------------------- --------------------编程问答-------------------- 求高手解答 打印机没反应 怎么设置打印机的名称呢
private void button1_Click(object sender, EventArgs e)
{
//调用打印汉字,下面代码将会打印“测试”二个汉字
string sBarCodeCMD = ""; //条码打印命令
StringBuilder sb1 = new StringBuilder(2048);
int i1;
i1 =GETFONTHEX("1111111111","宋体","temp1",0,30,20,0,0,sb1);
sBarCodeCMD = sb1.ToString() + "^XA^MD30^LH20,20^FO20,20^XGtemp1,1,1^FS^XZ";
} --------------------编程问答-------------------- 怎么让它打印出想对应的条码呢 求高手 --------------------编程问答-------------------- 学习了、高手真的太多了
补充:.NET技术 , C#