首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-07-09 
C# 实现调用fnthex.32dll进行斑马打印机打印汉字打印出来为什么是空白的?本帖最后由 u010319735 于 2013-0

C# 实现调用fnthex.32dll进行斑马打印机打印汉字打印出来为什么是空白的?
本帖最后由 u010319735 于 2013-05-28 17:32:05 编辑 如题:
    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 非常感谢啊



               


C# 斑马打印机 fnthex32.dll 打印机打印
[解决办法]
估计是打印区设置的问题,没有打到正经的地方
[解决办法]
[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);
        }

    }

要是你还没搞定,我有完整的示例。

热点排行