                                  PDF417 άɶ̬ӿʹ˵
                    

   
   MakePDF417.dllάɶ̬ӿ⣬PDF417ά룬windowsߡ
______________________________________________________________________________________________


//ͼƬλͼ
(C++)
void  __stdcal Make(unsigned char* ucData, long nDataLen, char* szBmpFileName, long nClumn, long nErr, long nHLRatio,long nHeight);
˵:ucData          
			(ֶ֧ݡԴļȡƣѸöַб
			磺CString filename = filedlg.GetPathName();
			    file.Read(szBuf, 1024);
  			    Make((BYTE*)szBuf, nDataLen, szFileName, 3,3, 3, 38);
			)
	 nDataLen        ݳ(ע:ֽ) <=1K
	 szBmpFileName  ͼƬļBMPʽ	 
	 nClomn          ȡֵΧ1-30ݾַȣ
	 nErr            ȼȡֵΧ0-7ȡ2-3
	 nHLRatio        뵥λȺͿȱȡֵΧ1-5
	                  1----룬ͼƬСʺݿϵͳʹã
	                       ֱС洢ݿУٶ죬ʺϴ
	                       롣Ҫͨؼݺʵ󣬴ӡ
	                       ſʶֱӴӡʶ룻
	                  2--5 ׼룬ʺֱӴӡʶ룬ȡ3
	nHeight		BMPͼƬ߶,Ϊ0Զʵĸ߶ȣָ߶ȣֳɵĶάͼƬ
         ϲýֱӰĿɶԺͼƬĴС


/01ͼƬ
void __stdcall FlagMake(unsigned char* ucData,  long nDataLen, long nClumn, long nErr, long nHLRatio,  long nHeight, BYTE* Buffer, int* pnWidth,  int* pnHeight)

	˺01ͼƬݣ0ʾɫ1ʾɫ.
	

˵:nDataLen        ݳ(ע:ֽ) <=1K	 
	 nClomn          ȡֵΧ1-30ݾַȣ
	 nErr            ȼȡֵΧ0-7ȡ2-3
	 nHLRatio        뵥λȺͿȱȡֵΧ1-5
	                  1----룬ͼƬСʺݿϵͳʹã
	                       ֱС洢ݿУٶ죬ʺϴ
	                       롣Ҫͨؼݺʵ󣬴ӡ
	                       ſʶֱӴӡʶ룻
	                  2--5 ׼룬ʺֱӴӡʶ룬ȡ3
	nHeight		BMPͼƬ߶,Ϊ0Զʵĸ߶ȣָ߶ȣֳɵĶάͼƬ
         ϲýֱӰĿɶԺͼƬĴС
	Buffer		01Ļ(0ʾɫ1ʾɫ)
	nHeight  nWidth ߶ȺͿ
	                       

:	////////////////////////////
	int nWidth = 0;
	int nHeight = 0;
	
	FlagMake((BYTE*)str.GetBuffer(0), str.GetLength(), m_nV1, m_nV2, m_nV3, m_nHeight,NULL,&nWidth, &nHeight);
	if(nWidth<=0 || nHeight<=0)
		return;
	BYTE* byBufferFlag = new BYTE[nWidth*nHeight];
	FlagMake((BYTE*)str.GetBuffer(0), str.GetLength(), m_nV1, m_nV2, m_nV3, m_nHeight,byBufferFlag,&nWidth, &nHeight);
	/////////////////////////////


// áȡͼƬɫ 
int  __stdcal SetColorDepth(int nDepth);
int  __stdcal GetColorDepth();
˵:nDepth         ɫ ȡֵΪ 1824ڰ׶ɫ256ɫ24λɫ 
ֵ SetColorDepth 1ʾɹ
       GetColorDepth ɫ ֵΪ 1824֮һ


//ϢͼƬϳɺ
(C++)
long  MixText(char*  szSrcBmpFileName, 
	char*  szDstBmpFileName, 
	char*  szText, 
	long lFontSize, 
	long lTxtHeight, 
	long lHmargin, 
	long lVmargin, 
	long lTxtCntOneLine)
˵:szSrcBmpFileName, ҪϢBMPļ
	szDstBmpFileName, Ӻֺ󱣴BMPļszSrcBmpFileNameͬ
	szText,ҪӵϢ,Ϊ
	lFontSize,ߴ磬Ϊ0lTxtHeightָĸ߶ȣԶ
		  Ϊ0ֱӸlFontSize壬lTxtHeight
	lTxtHeight,дĸ߶ȣlFontSizeΪ0Զ߶ȴ
	lHmargin,ˮƽ(߼ұߣԤĿհ,lFontSizeΪ0ʱұԤĿհؽһΪ
		lHmargin(Ϊ岢Ӧ)
	lVmargin,ֱִԤĿհ
	lTxtCntOneLine,һеֽע⣺12ֽڣ,Ϊ0ʾһУlTxtCntOneLineָ

lTxtHeight,lHmargin,lVmarginΪֵ
ֵ:0ʧܣ1ɹ



//ͼƬɵ
(C++)
void __stdcall MakeToBuffer(unsigned char* ucData, long nDataLen, long nClumn, long nErr, long nHLRatio,long nHeight, 
		   char** ppBuffer, long* pBufferLen)
˵:ucData           
	 nDataLen        ݳ(ע:ֽ) <=1555
	 nClomn          ȡֵΧ1-30ݾַȣ
	 nErr            ȼȡֵΧ0-7ȡ2-3
	 nHLRatio        뵥λȺͿȱȡֵΧ1-5
	                  1----룬ͼƬСʺݿϵͳʹã
	                       ֱС洢ݿУٶ죬ʺϴ
	                       롣Ҫͨؼݺʵ󣬴ӡ
	                       ſʶֱӴӡʶ룻
	                  2--5 ׼룬ʺֱӴӡʶ룬ȡ3	                       
	nHeight		BMPͼƬ߶,Ϊ0Զʵĸ߶ȣָ߶ȣֳɵĶάͼƬ	 
         		ϲýֱӰĿɶԺͼƬĴС
	 ppBuffer   	,BMPļ
	 pBufferLen	,*ppBufferָĳ
˵:   *ppBuffer  ָռɺڲʵͼƬС,̬,ʹ˺,ٵ
	FreeBufferһ,ͷſռ


//ͷͼƬ
(C++)
void __stdcall FreeBuffer(char* pBuffer)		 
˵:
	ͷMakeToBufferڲĿռ


//ͼƬ
(C++)
void __stdcall MakeToHBitmap(unsigned char* ucData, long nDataLen, long nClumn, long nErr, long nHLRatio,long nHeight,
		   HBITMAP* pHBitmap);

˵:ucData           
	 nDataLen        ݳ(ע:ֽ) <=1555
	 nClomn          ȡֵΧ1-30ݾַȣ
	 nErr            ȼȡֵΧ0-7ȡ2-3
	 nHLRatio        뵥λȺͿȱȡֵΧ1-5
	                  1----룬ͼƬСʺݿϵͳʹã
	                       ֱС洢ݿУٶ죬ʺϴ
	                       롣Ҫͨؼݺʵ󣬴ӡ
	                       ſʶֱӴӡʶ룻
	                  2--5 ׼룬ʺֱӴӡʶ룬ȡ3
	nHeight		BMPͼƬ߶,Ϊ0Զʵĸ߶ȣָ߶ȣֳɵĶάͼƬ	 	                       
         		ϲýֱӰĿɶԺͼƬĴС
	 pHBitmap	 HBITMAPָ


:
HINSTANCE hInst;
	typedef void  (__stdcall *MAKE)(unsigned char* ucData, long nDataLen, char* szBmpFileName, long nClumn, long nErr, long nHLRatio);
	typedef void (__stdcall *MAKETOBUFFER)(unsigned char* ucData, long nDataLen, long nClumn, long nErr, long nHLRatio, 
		   char** ppBuffer, long* pBufferLen);

	typedef void (__stdcall *FREEBUFFER)(char* pBuffer);
	typedef void (__stdcall *MAKETOHBITMAP)(unsigned char* ucData, long nDataLen, long nClumn, long nErr, long nHLRatio, 
		   HBITMAP* pHBitmap);

	MAKETOBUFFER MakeToBuffer;
	FREEBUFFER FreeBuffer;
	MAKETOHBITMAP MakeToHBitmap;	
	MAKE Make;

	hInst = LoadLibrary("MakeBar.dll");
	
	Make = (MAKE)GetProcAddress(hInst, "Make");	
	MakeToBuffer = (MAKETOBUFFER)GetProcAddress(hInst, "MakeToBuffer");
	FreeBuffer = (FREEBUFFER)GetProcAddress(hInst, "FreeBuffer");
	MakeToHBitmap = (MAKETOHBITMAP)GetProcAddress(hInst, "MakeToHBitmap");


	Make("HL", strlen("HL"),"c:\\abc.bmp",3, 3, 3, 0);
	
	lRet = MixText("c:\\abc.bmp", "c:\\abc.bmp", "ABCDEFGH", 0, 40
		, 10, 5, 8);
//***************Make--S*************/
//	Make("HL", strlen("HL"), szFileName, m_nV1, m_nV2, m_nV3,0);
//	m_bDraw = TRUE;
//	Invalidate();
//***************Make--E*************/
//***************MakeToBuffer--S*************/
	char* pBuffer=NULL;
	long nBufferLen;
	MakeToBuffer("HL", strlen("HL"),  m_nV1, m_nV2, m_nV3,0, &pBuffer, &nBufferLen);
	FreeBuffer(pBuffer);
//***************MakeToBuffer--E*************/

//***************MakeToHBitmap--S*************/
	HBITMAP hbitmap = NULL;
	MakeToHBitmap("HL", strlen("HL"),  m_nV1,m_nV2, m_nV3,0,
		   &hbitmap);





磺
HINSTANCE hInst;
hInst = LoadLibrary("MakeBar.dll");
typedef int  (__stdcall *SETCOLORDEPTH)(int nDepth);
SETCOLORDEPTH SetColorDepth = (SETCOLORDEPTH)GetProcAddress(hInst, "SetColorDepth");
typedef int  (__stdcall *GETCOLORDEPTH)();
GETCOLORDEPTH GetColorDepth = (GETCOLORDEPTH)GetProcAddress(hInst, "GetColorDepth");
int nret =  SetColorDepth(8);//256ɫ
nret = GetColorDepth();//ȡɫ

____________________________________________________________________________________________________

(VB)
Private Declare Sub Make Lib "makebar.dll" _
(ucData As Byte, ByVal nLen As Long, ByVal szFileName As String, ByVal nClumn As Long, ByVal nErr As Long, ByVal nHLRatio As Long)

:
Dim a() As Byte
a = Text1.Text
Make a(0), UBound(a) - LBound(a) + 1, "abc.bmp", 3, 3, 3,0




//ӦڻعĶάϵͳʱĲ˵
*************************************************************************************************
*********                      Ķά˵                              ************
*************************************************************************************************
*1WORDĵֱӲ뱾ؼɵͼƬҪκŴᵼ벻ɶ
*2nClomn Ϊ7ͼƬwordļдӡպΪ50mmҪӿСȣֻ
*3nErrΪ3
*4nHLRatio̶Ϊ1
*5nHeightΪ38-94Ϊ38ʱɵWORDдӡ߶ȸպΪ10mm,Ϊ94ʱɸ߶Ϊ2.5cm,
    Ҫ߶ֻ;
*6nDepthͼƬɫΪ24
**************************************************************************************************



ʾƣ
1nDataLen ݳ(ֽ) <=20ֽ
2nErr ȼ̶Ϊ1
3szBmpFileName ͼƬļ""Ŵ
4ʾֳΪ8ֽ



