T168_Debug222\appl\Barcode\One文件:CodePlessey.c

/******************************************************************************
 *                                                                            *
 *                         M O D U L E   D E F I N E                          *
 *                                                                            *
 ******************************************************************************/

#define CODEMSI_C

/******************************************************************************
 *                                                                            *
 *        C O M P I L E R   D E F I N E D   I N C L U D E   F I L E S         *
 *                                                                            *
 ******************************************************************************/

#include <string.h>
#include <stdlib.h>
#include <math.h>
/******************************************************************************
 *                                                                            *
 *            U S E R   D E F I N E D   I N C L U D E   F I L E S             *
 *                                                                            *
 ******************************************************************************/

#include "Common.h"
#include "XGraphic.h"
#include "Barcode.h"

/******************************************************************************
 *                                                                            *
 *                         L O C A L   D E F I N E S                          *
 *                                                                            *
 ******************************************************************************/

#define QUIET_MU                    0
#define TEXT_DIS                    5

/******************************************************************************
 *                                                                            *
 *                        L O C A L   T Y P E D E F S                         *
 *                                                                            *
 ******************************************************************************/

#define PLESSEY_TEXT_ERROR        0x01

/******************************************************************************
 *                                                                            *
 *             L O C A L   F U N C T I O N   P R O T O T Y P E S              *
 *                                                                            *
 ******************************************************************************/

/* None */

/******************************************************************************
 *                                                                            *
 *    L O C A L   I N I T I A L I Z E D   D A T A   D E F I N I T I O N S     *
 *                                                                            *
 ******************************************************************************/

STATIC CONST BYTE PLESSEY_START={0x0B};
STATIC CONST BYTE PLESSEY_END={0x03};

STATIC CONST BYTE PLESSEY_TBL[16]=
{
    /*-----------------02-23-99 16:14-------------------
    0,1,2,3,4,5,6,7
    --------------------------------------------------*/
    0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0X0E,
    /*-----------------02-23-99 16:14-------------------
    8,9,A,B,C,D,E,F
    --------------------------------------------------*/
    0x01,0x09,0x05,0x0D,0X03,0x0B,0x07,0x0F
};

STATIC CONST BYTE PlesseyCRC[] = {
    0x00,0x37,0x6e,0x59,0xdc,0xeb,0xb2,0x85,0x97,0xa0,0xf9,0xce,0x4b,0x7c,0x25,0x12,
    0x01,0x36,0x6f,0x58,0xdd,0xea,0xb3,0x84,0x96,0xa1,0xf8,0xcf,0x4a,0x7d,0x24,0x13,
    0x02,0x35,0x6c,0x5b,0xde,0xe9,0xb0,0x87,0x95,0xa2,0xfb,0xcc,0x49,0x7e,0x27,0x10,
    0x03,0x34,0x6d,0x5a,0xdf,0xe8,0xb1,0x86,0x94,0xa3,0xfa,0xcd,0x48,0x7f,0x26,0x11,
    0x04,0x33,0x6a,0x5d,0xd8,0xef,0xb6,0x81,0x93,0xa4,0xfd,0xca,0x4f,0x78,0x21,0x16,
    0x05,0x32,0x6b,0x5c,0xd9,0xee,0xb7,0x80,0x92,0xa5,0xfc,0xcb,0x4e,0x79,0x20,0x17,
    0x06,0x31,0x68,0x5f,0xda,0xed,0xb4,0x83,0x91,0xa6,0xff,0xc8,0x4d,0x7a,0x23,0x14,
    0x07,0x30,0x69,0x5e,0xdb,0xec,0xb5,0x82,0x90,0xa7,0xfe,0xc9,0x4c,0x7b,0x22,0x15,
    0x08,0x3f,0x66,0x51,0xd4,0xe3,0xba,0x8d,0x9f,0xa8,0xf1,0xc6,0x43,0x74,0x2d,0x1a,
    0x09,0x3e,0x67,0x50,0xd5,0xe2,0xbb,0x8c,0x9e,0xa9,0xf0,0xc7,0x42,0x75,0x2c,0x1b,
    0x0a,0x3d,0x64,0x53,0xd6,0xe1,0xb8,0x8f,0x9d,0xaa,0xf3,0xc4,0x41,0x76,0x2f,0x18,
    0x0b,0x3c,0x65,0x52,0xd7,0xe0,0xb9,0x8e,0x9c,0xab,0xf2,0xc5,0x40,0x77,0x2e,0x19,
    0x0c,0x3b,0x62,0x55,0xd0,0xe7,0xbe,0x89,0x9b,0xac,0xf5,0xc2,0x47,0x70,0x29,0x1e,
    0x0d,0x3a,0x63,0x54,0xd1,0xe6,0xbf,0x88,0x9a,0xad,0xf4,0xc3,0x46,0x71,0x28,0x1f,
    0x0e,0x39,0x60,0x57,0xd2,0xe5,0xbc,0x8b,0x99,0xae,0xf7,0xc0,0x45,0x72,0x2b,0x1c,
    0x0f,0x38,0x61,0x56,0xd3,0xe4,0xbd,0x8a,0x98,0xaf,0xf6,0xc1,0x44,0x73,0x2a,0x1d,
};

/******************************************************************************
 *                                                                            *
 *    L O C A L   U N I T I A L I Z E D   D A T A   D E F I N I T I O N S     *
 *                                                                            *
 ******************************************************************************/


/*-----------------02-11-99 13:15-------------------
 code plessey
--------------------------------------------------*/
INT CodePlessey(_BarCodeAttr *psBarCodeAttr)
{
    /*-----------------08-16-99 17:18-------------------
     variables
    --------------------------------------------------*/
    INT iProcess, iTemp;    
    ULONG lTemp;
    INT i;
    BYTE bCodedata, bCodeMask;    
    BYTE bsHuman[100];
    BYTE *pHuman;
    BYTE *pExpress;
    _BarAttr sBarAttr;
    _BarCodeAttr sBarCodeAttr;    
    BYTE CRC = 0;

    sBarCodeAttr = *psBarCodeAttr; 
    pHuman = bsHuman;

    /*-----------------08-16-99 17:19-------------------
     ImagePoint initial
    --------------------------------------------------*/
    sBarAttr.psImageBuffer=sBarCodeAttr.psImageBuffer;
    pExpress=sBarCodeAttr.pExp;
    iProcess=0;

    /*-----------------02-10-99 11:35-------------------
      decode
    -------------------------------------------------*/
    while ( 1 )
    {
        /*-----------------02-10-99 11:29-------------------
        leading quiet zone
        --------------------------------------------------*/
        if ( iProcess == 0 )
        {
            switch ( sBarCodeAttr.iRotation  )
            {
                case 90:
                    sBarCodeAttr.sCoord.iX=sBarCodeAttr.sCoord.iX-sBarCodeAttr.iHeight;
                    sBarCodeAttr.sCoord.iY=sBarCodeAttr.sCoord.iY+sBarCodeAttr.iNarrow*QUIET_MU;
                    break;
                case 180:
                    sBarCodeAttr.sCoord.iY=sBarCodeAttr.sCoord.iY-sBarCodeAttr.iHeight;
                    sBarCodeAttr.sCoord.iX=sBarCodeAttr.sCoord.iX-sBarCodeAttr.iNarrow*QUIET_MU;
                    break;
                case 270:
                    sBarCodeAttr.sCoord.iY=sBarCodeAttr.sCoord.iY-sBarCodeAttr.iNarrow*QUIET_MU;
                    break;
                case 0:
                default:
                    sBarCodeAttr.sCoord.iX=sBarCodeAttr.sCoord.iX+sBarCodeAttr.iNarrow*QUIET_MU;
                    break;
            }
            iProcess=1;
            continue;
        }
        /*-----------------02-10-99 11:35-------------------
        start code
        --------------------------------------------------*/
        else if ( iProcess == 1 )
        {
            bCodedata = PLESSEY_TBL[PLESSEY_START];
            iProcess = 2;
        }
        /*-----------------02-10-99 12:06-------------------
        get data -> encode fisrt byte
        --------------------------------------------------*/
        else if ( iProcess == 2 )
        {
            BYTE bData;

            if ( (*pExpress >= '0') && (*pExpress <= '9') )
            {
                bData = *pExpress-'0';
                bCodedata = PLESSEY_TBL[bData];
                *pHuman = *pExpress;
                CRC = PlesseyCRC[CRC ^ bData];
                ++pExpress;
                pHuman++ ;
            }
            else if ( (*pExpress >= 'A') && (*pExpress <= 'F') )
            {
                bData = *pExpress - 'A' + 10;
                bCodedata=PLESSEY_TBL[bData];
                *pHuman = *pExpress;
                CRC = PlesseyCRC[CRC ^ bData];
                ++pExpress;
                pHuman++ ;
            }
            else if ( *pExpress == _NULL )
            {
                *pHuman = 0;
                iProcess = 3;
                    continue;
            }
            else
            {
                /*-----------------02-23-99 17:44-------------------
                 error
                --------------------------------------------------*/
                return PLESSEY_TEXT_ERROR;
            }
        }
        /*-----------------02-10-99 14:52-------------------
         C check digital
        --------------------------------------------------*/
        else if( iProcess == 3 )
        {
            bCodedata = PLESSEY_TBL[CRC & 0x0F];
            iProcess = 4;
        }
        else if( iProcess == 4 )
        {
            bCodedata = PLESSEY_TBL[(CRC & 0xF0) >> 4];
            iProcess = 5;
        }
        /*-----------------02-10-99 12:07-------------------
        termination pitch
        --------------------------------------------------*/
        else if ( iProcess == 5 )
        {
            INT iTermination;

            iTermination = sBarCodeAttr.iWide + sBarCodeAttr.iNarrow;
            sBarAttr.iType = DRAW_BAR;

            switch ( psBarCodeAttr->iRotation )
            {
                  case 90:
                      sBarAttr.sCoord.iX=sBarCodeAttr.sCoord.iX;
                      sBarAttr.sCoord.iY=sBarCodeAttr.sCoord.iY;
                         sBarAttr.iWidth=sBarCodeAttr.iHeight;
                    sBarAttr.iHeight=iTermination;
                       DrawBar(&sBarAttr);
                    sBarCodeAttr.sCoord.iY=sBarCodeAttr.sCoord.iY+iTermination;
                      break;
                  case 180:
                      sBarAttr.sCoord.iY=sBarCodeAttr.sCoord.iY;
                         sBarAttr.iWidth=iTermination;
                    sBarAttr.sCoord.iX=sBarCodeAttr.sCoord.iX-iTermination;
                      sBarAttr.iHeight=sBarCodeAttr.iHeight;
                       DrawBar(&sBarAttr);
                     sBarCodeAttr.sCoord.iX -= iTermination;
                      break;
                  case 270:
                      sBarAttr.sCoord.iX=sBarCodeAttr.sCoord.iX;
                       sBarAttr.iWidth=sBarCodeAttr.iHeight;
                      sBarAttr.iHeight=sBarCodeAttr.iWide;
                       sBarAttr.sCoord.iY=sBarCodeAttr.sCoord.iY-iTermination;
                       DrawBar(&sBarAttr);
                    sBarCodeAttr.sCoord.iY=sBarCodeAttr.sCoord.iY-iTermination;
                      break;
                  case 0:
                  default:
                      sBarAttr.sCoord.iX=sBarCodeAttr.sCoord.iX;
                      sBarAttr.sCoord.iY=sBarCodeAttr.sCoord.iY;
                         sBarAttr.iWidth=iTermination;
                      sBarAttr.iHeight=sBarCodeAttr.iHeight;
                       DrawBar(&sBarAttr);
                    sBarCodeAttr.sCoord.iX += iTermination;
                      break;
               }

            iProcess = 6;
            continue;
        }
        /*-----------------02-10-99 12:07-------------------
        end code
        --------------------------------------------------*/
        else if ( iProcess == 6 )
        {                
            bCodedata = PLESSEY_END;
            iProcess = 7;
        }

        /*-----------------02-10-99 11:35-------------------
        draw bar
        --------------------------------------------------*/

        bCodeMask=0x10;

        while(bCodeMask>1)
           {
            bCodeMask=bCodeMask>>1;
            sBarAttr.iType=DRAW_BAR;
              switch ( sBarCodeAttr.iRotation )
              {
                  case 0:
                   default:
                       sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                       sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                       sBarAttr.iHeight = sBarCodeAttr.iHeight;
                    if ( (bCodedata & bCodeMask)!=0 )
                    {
                        sBarAttr.iWidth = sBarCodeAttr.iWide;
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iX += sBarCodeAttr.iNarrow;
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                        }
                        else
                            sBarCodeAttr.sCoord.iX += sBarCodeAttr.iWide;

                           DrawBar(&sBarAttr);

                        if ( iProcess == 7 )
                            sBarCodeAttr.sCoord.iX += sBarCodeAttr.iWide;
                        else
                               sBarCodeAttr.sCoord.iX += sBarCodeAttr.iNarrow;
                    }
                    else
                    {
                        sBarAttr.iWidth = sBarCodeAttr.iNarrow;    
                        if ( iProcess == 7 )
                        {
                             sBarCodeAttr.sCoord.iX += sBarCodeAttr.iWide;
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                        }
                        else
                            sBarCodeAttr.sCoord.iX += sBarCodeAttr.iNarrow;

                           DrawBar(&sBarAttr);    

                        if ( iProcess == 7 )
                            sBarCodeAttr.sCoord.iX += sBarCodeAttr.iNarrow;
                        else
                               sBarCodeAttr.sCoord.iX += sBarCodeAttr.iWide;
                    }
                       break;
                  case 90:
                      sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                      sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                      sBarAttr.iWidth = sBarCodeAttr.iHeight;
                    if ( (bCodedata & bCodeMask)!=0 )
                    {      
                        sBarAttr.iHeight = sBarCodeAttr.iWide;
                    
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iY += sBarCodeAttr.iNarrow;
                            sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                        }
                        else
                              sBarCodeAttr.sCoord.iY += sBarCodeAttr.iWide;

                        DrawBar(&sBarAttr);

                        if ( iProcess == 7 )
                               sBarCodeAttr.sCoord.iY += sBarCodeAttr.iWide;
                        else
                            sBarCodeAttr.sCoord.iY += sBarCodeAttr.iNarrow;    
                    }
                    else
                    {
                        sBarAttr.iHeight = sBarCodeAttr.iNarrow;

                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iY += sBarCodeAttr.iWide;
                            sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                        }
                        else
                              sBarCodeAttr.sCoord.iY += sBarCodeAttr.iNarrow;

                        DrawBar(&sBarAttr);

                        if ( iProcess == 7 )
                               sBarCodeAttr.sCoord.iY += sBarCodeAttr.iNarrow;
                        else
                               sBarCodeAttr.sCoord.iY += sBarCodeAttr.iWide;
                    }
                      break;
                   case 180:
                    sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                       sBarAttr.iHeight = sBarCodeAttr.iHeight;
                    if ( (bCodedata & bCodeMask)!=0 )
                    {
                        sBarAttr.iWidth = sBarCodeAttr.iWide;
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iX -= (sBarCodeAttr.iNarrow + sBarAttr.iWidth);
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                        }
                        else
                        {
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX - sBarCodeAttr.iWide;
                             sBarCodeAttr.sCoord.iX -= sBarCodeAttr.iWide;
                        }

                           DrawBar(&sBarAttr);

                        if ( iProcess != 7 )
                               sBarCodeAttr.sCoord.iX -= sBarCodeAttr.iNarrow;
                    }
                    else
                    {
                        sBarAttr.iWidth = sBarCodeAttr.iNarrow;
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iX -= (sBarCodeAttr.iWide+sBarAttr.iWidth);
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                        }
                        else
                        {
                            sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX - sBarCodeAttr.iNarrow;
                             sBarCodeAttr.sCoord.iX -= sBarCodeAttr.iNarrow;
                        }

                           DrawBar(&sBarAttr);

                        if (iProcess != 7)
                               sBarCodeAttr.sCoord.iX -= sBarCodeAttr.iWide;
                    }
                       break;
                   case 270:
                       sBarAttr.sCoord.iX = sBarCodeAttr.sCoord.iX;
                          sBarAttr.iWidth = sBarCodeAttr.iHeight;
                    if ( (bCodedata & bCodeMask)!=0 )
                    {
                        sBarAttr.iHeight = sBarCodeAttr.iWide;
                        sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY - sBarCodeAttr.iWide;    
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iY -= (sBarCodeAttr.iNarrow+ sBarAttr.iHeight);
                            sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                        }
                        else
                            sBarCodeAttr.sCoord.iY -= sBarCodeAttr.iWide;

                           DrawBar(&sBarAttr);

                        if ( iProcess != 7 )
                               sBarCodeAttr.sCoord.iY -= sBarCodeAttr.iNarrow;
                    }
                    else
                    {
                           sBarAttr.iHeight = sBarCodeAttr.iNarrow;
                         sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY - sBarCodeAttr.iNarrow;
                        
                        if ( iProcess == 7 )
                        {
                            sBarCodeAttr.sCoord.iY -= (sBarCodeAttr.iWide + sBarAttr.iHeight);
                            sBarAttr.sCoord.iY = sBarCodeAttr.sCoord.iY;
                        }
                        else
                             sBarCodeAttr.sCoord.iY = sBarCodeAttr.sCoord.iY - sBarCodeAttr.iNarrow;

                           DrawBar(&sBarAttr);

                        if ( iProcess != 7 )
                               sBarCodeAttr.sCoord.iY -= sBarCodeAttr.iWide;
                    }
                       break;
               }
           }

        if ( iProcess == 7 )
            break;
    }

    if ( psBarCodeAttr->iHuman != 0 )
    {
        _TextAttr sTextAttr;

        sTextAttr.sCoord.iX  = psBarCodeAttr->sCoord.iX;
        sTextAttr.sCoord.iY  = psBarCodeAttr->sCoord.iY;
        sTextAttr.iDirection = psBarCodeAttr->iRotation;
        sTextAttr.iRotation  = psBarCodeAttr->iRotation;
        sTextAttr.iDistance  = 0;
        sTextAttr.iHoriMulti = psBarCodeAttr->FontHoriMulti;
        sTextAttr.iVertMulti = psBarCodeAttr->FontVertMulti;
         sTextAttr.ExpLength  = strlen((CHAR *)bsHuman);
          sTextAttr.pExp       = bsHuman; 
        sTextAttr.pFont      = psBarCodeAttr->pFont;
        sTextAttr.eLanguage  = psBarCodeAttr->eLanguage;
        sTextAttr.ePutWay    = psBarCodeAttr->ePutWay;

        sTextAttr.psImageBuffer = psBarCodeAttr->psImageBuffer;

        PreviewText(&sTextAttr);

        switch ( psBarCodeAttr->iRotation )
        {
            case 90:
                if ( psBarCodeAttr->AboveCode )
                    sTextAttr.sCoord.iX += sTextAttr.iRealHeight + TEXT_DIS;
                else
                    sTextAttr.sCoord.iX -= psBarCodeAttr->iHeight + TEXT_DIS;

                sTextAttr.sCoord.iY += psBarCodeAttr->iNarrow * QUIET_MU;
                if ( psBarCodeAttr->iHuman == 2 )
                    sTextAttr.sCoord.iY += (psBarCodeAttr->TotalWidth - sTextAttr.iRealWidth) / 2;
                else if ( psBarCodeAttr->iHuman == 3 )
                    sTextAttr.sCoord.iY = sBarCodeAttr.sCoord.iY - sTextAttr.iRealWidth;

                break;

            case 180:
                if ( psBarCodeAttr->AboveCode )
                    sTextAttr.sCoord.iY += sTextAttr.iRealHeight + TEXT_DIS;
                else
                    sTextAttr.sCoord.iY -= psBarCodeAttr->iHeight + TEXT_DIS;

                sTextAttr.sCoord.iX -= psBarCodeAttr->iNarrow * QUIET_MU;
                if ( psBarCodeAttr->iHuman == 2 )
                    sTextAttr.sCoord.iX -= (psBarCodeAttr->TotalWidth - sTextAttr.iRealWidth) / 2;
                else if ( psBarCodeAttr->iHuman == 3 )
                    sTextAttr.sCoord.iX = sBarCodeAttr.sCoord.iX + sTextAttr.iRealWidth;

                break;

            case 270:
                if ( psBarCodeAttr->AboveCode )
                    sTextAttr.sCoord.iX -= sTextAttr.iRealHeight + TEXT_DIS;
                else
                    sTextAttr.sCoord.iX += psBarCodeAttr->iHeight + TEXT_DIS;

                sTextAttr.sCoord.iY -= psBarCodeAttr->iNarrow * QUIET_MU;
                if ( psBarCodeAttr->iHuman == 2 )
                    sTextAttr.sCoord.iY -= (psBarCodeAttr->TotalWidth - sTextAttr.iRealWidth) / 2;
                else if ( psBarCodeAttr->iHuman == 3 )
                    sTextAttr.sCoord.iY = sBarCodeAttr.sCoord.iY + sTextAttr.iRealWidth;

                break;

            case 0:
            default:
                if ( psBarCodeAttr->AboveCode )
                    sTextAttr.sCoord.iY -= sTextAttr.iRealHeight + TEXT_DIS;
                else
                    sTextAttr.sCoord.iY += psBarCodeAttr->iHeight + TEXT_DIS;

                sTextAttr.sCoord.iX += psBarCodeAttr->iNarrow * QUIET_MU;
                if ( psBarCodeAttr->iHuman == 2 )
                    sTextAttr.sCoord.iX += (psBarCodeAttr->TotalWidth - sTextAttr.iRealWidth) / 2;
                else if ( psBarCodeAttr->iHuman == 3 )
                    sTextAttr.sCoord.iX = sBarCodeAttr.sCoord.iX - sTextAttr.iRealWidth;

                break;
        }

        OutText(&sTextAttr);
        psBarCodeAttr->TotalHeight += sTextAttr.iRealHeight + TEXT_DIS;
        psBarCodeAttr->FontWidth = sTextAttr.iRealWidth;
        psBarCodeAttr->FontHeight = sTextAttr.iRealHeight + TEXT_DIS;
    }
    return TRUE;
}

INT PreviewCodePlessey(_BarCodeAttr *psBarCodeAttr)
{
    INT TotalChar;

    /* Start + End + CRC*2 */
    TotalChar = strlen((CHAR *)psBarCodeAttr->pExp) + 4;    

    psBarCodeAttr->TotalWidth =    TotalChar * (psBarCodeAttr->iNarrow * 4 + psBarCodeAttr->iWide * 4) + 
                                /* termination pitch */
                                (psBarCodeAttr->iNarrow+ psBarCodeAttr->iWide);
    psBarCodeAttr->TotalHeight = psBarCodeAttr->iHeight;

    if (psBarCodeAttr->eLanguage == LANG_DPL && psBarCodeAttr->iHuman)
    {
        _TextAttr sTextAttr;

        sTextAttr.sCoord.iX  = psBarCodeAttr->sCoord.iX;
        sTextAttr.sCoord.iY  = psBarCodeAttr->sCoord.iY;
        sTextAttr.iDirection = psBarCodeAttr->iRotation;
        sTextAttr.iRotation  = psBarCodeAttr->iRotation;
        sTextAttr.iDistance  = 0;
        sTextAttr.iHoriMulti = psBarCodeAttr->FontHoriMulti;
        sTextAttr.iVertMulti = psBarCodeAttr->FontVertMulti;
         sTextAttr.ExpLength  = strlen((CHAR *)psBarCodeAttr->pExp);
          sTextAttr.pExp       = psBarCodeAttr->pExp; 
        sTextAttr.pFont      = psBarCodeAttr->pFont;
        sTextAttr.eLanguage  = psBarCodeAttr->eLanguage;
        sTextAttr.ePutWay    = psBarCodeAttr->ePutWay;

        sTextAttr.psImageBuffer = psBarCodeAttr->psImageBuffer;

        PreviewText(&sTextAttr);

        psBarCodeAttr->TotalHeight += sTextAttr.iRealHeight + TEXT_DIS;
        psBarCodeAttr->FontWidth = sTextAttr.iRealWidth;
        psBarCodeAttr->FontHeight = sTextAttr.iRealHeight + TEXT_DIS;
    }

    return TRUE;
}

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值