C# 实现调用fnthex.32dll进行斑马打印机打印汉字打印出来为什么是空白的? 本帖最后由 u010319735 于 2013-05-28 17:32:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [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); } }要是你还没搞定,我有完整的示例。 谢谢 我试用了下 现在打印2维码 居然可以了 什么个情况 兄弟我把分全给你吧 谢谢你了 如果你方便的话 把你的完整例子发下我看看 [email protected] 怎么使用fnthex32.dll打印二维码呀,真是无头绪,拜托LZ帮帮忙,指导一下吧~~~~~~~~~~~~ 是斑马打印机来的,不知道怎么使用FNTHEX32.DLL来打印二维码,现在是只能打印中文字呢~~~ longteng670603753很厉害,我亲自测试没问,解决了几天来一直为解决的中文打印问题,多谢了! 可以给我传一份完整的代码吗?我这边还是没有调试出来。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"); //打印品名上面这段代码是什么意思,怎么发送给打印机!!! C#拆分字符串问题 C#中图片翻转问题(急...) 记事本按行编辑与删除 <%#eval("title")%> 中的Eavl代表啥意思? 如果计算分组百分比 三层结构网站问题 关于 enableEventValidation=”true” 的问题 只有十分了!一个刁钻的问题!~ 关于DataGrid的2个问题 visual studio 2008发布文件的文件夹Application Files是系统自己产生的还是可以自己设置的 gridview中的列能像下拉框那样,显示的是某值,存的是另外一个值吗 字符串转整型
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);
} }要是你还没搞定,我有完整的示例。
是斑马打印机来的,不知道怎么使用FNTHEX32.DLL来打印二维码,现在是只能打印中文字呢~~~
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"); //打印品名
上面这段代码是什么意思,怎么发送给打印机!!!