条形码的宽度不能缩小,找遍了全世界都没有看到对应的方法!!!
有许多介绍说用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");