C# 实现调用fnthex.32dll进行斑马打印机打印汉字打印出来为什么是空白的?

珍是唯一 2013-05-28 01:46:25
如题:
C# 实现调用fnthex.32dll进行斑马打印机打印汉字打印出来为什么是空白的?
贴上代码:
[DllImport("FNTHEX32.DLL")]
public static extern int GETFONTHEX(
string BarcodeText,
string FontName,
string FileName,
int Orient,
int Height,
int Width,
int IsBold,
int IsItalic,
StringBuilder ReturnBarcodeCMD);

//调用
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(comboBox1.Text))
{
string sBarCodeCMD = ""; //条码打印命令
StringBuilder sb1 = new StringBuilder(21 * 1024);
//sb1.Length = ;
int ceshi;
ceshi = GETFONTHEX("测试", "宋体", "temp1", 0, 30, 20, 0, 0, sb1);
sBarCodeCMD = sb1.ToString() + "^XA^MD30^LH20,20^FO20,20^XGtemp1,1,1^FS^XZ";
// 发送一个打印指令到打印机 cmbInstalledPrinters.Text打印机名称, this.richTextBox2.Text(指令)

RawPrinterHelper.SendStringToPrinter(comboBox1.Text, sBarCodeCMD);
}
}
}
我的机型是GT800(EPL)望大家伸出援助之手帮下,被这问题磨了4天了,英文数字能打印 就是中文 不可以,前面还会报错 现在不报错 执行打印程序 打印出来是空白 如果有大神有小例子的话发我375135264@qq.com 非常感谢啊




...全文
1568 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hp874a1 2014-02-13
  • 打赏
  • 举报
回复
可以给我传一份完整的代码吗?我这边还是没有调试出来。 ConverFontToImageResult pinming = getFontText("打印中文内容", "黑体", Orientation.Orien0,55,20,true, false); Writer.WriteLine(pinming.Instruction.ToString() + pinming.ImageName.ToString() + "," + pinming.TotalSize.ToString() + "," + pinming.RowSize.ToString() + ","); Writer.WriteLine(pinming.ImageData.ToString()); Writer.WriteLine("^FO225,220^XG" + pinming.ImageName.ToString() + ",1,1^FS"); //打印品名 上面这段代码是什么意思,怎么发送给打印机!!!
fwinder 2013-12-05
  • 打赏
  • 举报
回复
longteng670603753很厉害,我亲自测试没问,解决了几天来一直为解决的中文打印问题,多谢了!
luyanvv 2013-07-08
  • 打赏
  • 举报
回复
引用 8 楼 u010319735 的回复:
打印机品牌不同 打印方法也不一样的
是斑马打印机来的,不知道怎么使用FNTHEX32.DLL来打印二维码,现在是只能打印中文字呢~~~
珍是唯一 2013-07-06
  • 打赏
  • 举报
回复
打印机品牌不同 打印方法也不一样的
luyanvv 2013-07-05
  • 打赏
  • 举报
回复
怎么使用fnthex32.dll打印二维码呀,真是无头绪,拜托LZ帮帮忙,指导一下吧~~~~~~~~~~~~
longteng670603753 2013-05-30
  • 打赏
  • 举报
回复
真正有用的我都放上来了。
longteng670603753 2013-05-29
  • 打赏
  • 举报
回复 1
[DllImport(@"Fnthex32.dll", CharSet = CharSet.Ansi)] public static extern int GETFONTHEX( string chnstr, string fontname, int orient, int height, int width, int bold, int italic, StringBuilder param1); public enum Orientation { Orien0, Orien90, Orien180, Orien270 } //private void BarCodeTool() //{ /// <summary> /// 获取字体编码 /// </summary> /// <param name="printText">打印文本</param> /// <param name="printFont">字体名称</param> /// <param name="Orientation">旋转方向</param> /// <param name="height">高度</param> /// <param name="width">宽度</param> /// <param name="IsBold">是否粗体</param> /// <param name="IsItalic">是否斜体</param> /// <returns></returns> public static ConverFontToImageResult getFontText(string printText, string printFont, Orientation Orientation, int height, int width, bool IsBold, bool IsItalic) { ConverFontToImageResult result = null;; try { StringBuilder buder = new StringBuilder(30000); string temp = string.Empty; int bold = IsBold ? 1 : 0; int italic = IsItalic ? 1 : 0; int count = GETFONTHEX(printText, printFont, 0, height, width,bold, italic, buder); if (count > 0) { result=new ConverFontToImageResult(); temp = buder.ToString(); string[] data = temp.Split(','); result.ImageName = data[0].Replace("~DG", "") + randrom.ToString(); result.Instruction = "~DGR:"; result.TotalSize = data[1]; result.RowSize = data[2]; result.ImageData = data[3]; } } catch (Exception ex) { } return result; } ConverFontToImageResult pinming = getFontText("打印中文内容", "黑体", Orientation.Orien0,55,20,true, false); Writer.WriteLine(pinming.Instruction.ToString() + pinming.ImageName.ToString() + "," + pinming.TotalSize.ToString() + "," + pinming.RowSize.ToString() + ","); Writer.WriteLine(pinming.ImageData.ToString()); Writer.WriteLine("^FO225,220^XG" + pinming.ImageName.ToString() + ",1,1^FS"); //打印品名 public class ConverFontToImageResult { private string imageName; /// <summary> /// 文件名称 /// </summary> public string ImageName { get { return imageName; } set { imageName = value; } } private string instruction; /// <summary> /// 图片指令 /// </summary> public string Instruction { get { return instruction; } set { instruction = value; } } private string imageData; /// <summary> /// 图片数据 /// </summary> public string ImageData { get { return imageData; } set { imageData = value; } } private string totalSize; /// <summary> /// 总共字节数 /// </summary> public string TotalSize { get { return totalSize; } set { totalSize = value; } } private string rowSize; /// <summary> /// 每行字节数 /// </summary> public string RowSize { get { return rowSize; } set { rowSize = value; } } /// <summary> /// 获取包装过的数据字符串 /// </summary> /// <returns></returns> public string GetDateString() { return string.Format("{0}{1},{2},{3},{4}", this.Instruction, this.ImageName, this.TotalSize, this.RowSize, this.ImageData); } /// <summary> /// 获取包装过的数据字符串 /// </summary> /// <returns></returns> public string GetDateString(string iamgeName) { return string.Format("{0}{1},{2},{3},{4}", this.Instruction, iamgeName, this.TotalSize, this.RowSize, this.ImageData); } } 要是你还没搞定,我有完整的示例。
珍是唯一 2013-05-29
  • 打赏
  • 举报
回复
我用同样的参数打印英文能打印出来 打印中文的话打断点的时候也已经转换过来了 但是怎么发送转换的指令不是非常明白 所以就不知道错在哪里
珍是唯一 2013-05-29
  • 打赏
  • 举报
回复
谢谢 我试用了下 现在打印2维码 居然可以了 什么个情况 兄弟我把分全给你吧 谢谢你了 如果你方便的话 把你的完整例子发下我看看 375135264@qq.com
chenwei9120 2013-05-28
  • 打赏
  • 举报
回复
估计是打印区设置的问题,没有打到正经的地方
珍是唯一 2013-05-28
  • 打赏
  • 举报
回复
指点一下也行啊 崩溃了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧