日期:2014-05-20  浏览次数:21117 次

让人头大的条形码宽度缩小啊!!!
本帖最后由 stevenjin 于 2013-01-26 14:39:44 编辑
条形码的宽度不能缩小,找遍了全世界都没有看到对应的方法!!!
有许多介绍说用scantransfrom()这个方法,确实能缩放,但不能缩小。如果输入参数为0.8就不行了!
自己研究用SetResolution()这个方法,确实可以缩小,但这个是会减少分辨率,可能会降低条码枪的可读性。
生成条码的代码是这样的,也是很多博客COPY的那段代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace MSCL
{
    class Code39
    {
        private Hashtable m_Code39 = new Hashtable();  
    
          private byte m_Magnify = 0;  
          /// <summary>   
          /// 放大倍数   
          /// </summary>   
          public byte Magnify { get { return m_Magnify; } set { m_Magnify = 
  value; } }  
    
          private int m_Height = 40;  
          /// <summary>   
          /// 图形高   
          /// </summary>   
          public int Height { get { return m_Height; } set { m_Height = value; } 
  }  
    
          private Font m_ViewFont = null;  
          /// <summary>   
          /// 字体大小   
          /// </summary>   
          public Font ViewFont { get { return m_ViewFont; } set { m_ViewFont = 
  value; } }  
    
     
    
          public Code39()  
          {  
    
              m_Code39.Add("A", "1101010010110");  
              m_Code39.Add("B", "1011010010110");  
              m_Code39.Add("C", "1101101001010");  
              m_Code39.Add("D", "1010110010110");  
              m_Code39.Add("E", "1101011001010");  
              m_Code39.Add("F", "1011011001010");  
              m_Code39.Add("G", "1010100110110");  
              m_Code39.Add("H", "1101010011010");  
              m_Code39.Add("I", "1011010011010");  
              m_Code39.Add("J", "1010110011010");  
              m_Code39.Add("K", "1101010100110");  
              m_Code39.Add("L", "1011010100110");  
              m_Code39.Add("M", "1101101010010");  
              m_Code39.Add("N", "1010110100110");  
              m_Code39.Add("O", "1101011010010");  
              m_Code39.Add("P", "1011011010010");  
              m_Code39.Add("Q", "1010101100110");  
              m_Code39.Add("R", "1101010110010");  
              m_Code39.Add("S", "1011010110010");  
              m_Code39.Add("T", "1010110110010");