Code sample Home

Create barcodes

void DemoBarcodes (HANDLE hLcWnd)
{
  HANDLE hDrw, hBlock, hTStyle, hEnt;
  double X, Y, W, H, dx;
  WCHAR* szTextStyle = L"Bar text";
  WCHAR* szFontName = L"Arial";

  // get drawing and block, linked with CAD window
  hDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );
  hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_BLOCK );
  // get text style with specified name
  hTStyle = lcDrwGetObjectByName( hDrw, LC_OBJ_TEXTSTYLE, szTextStyle );
  if (hTStyle == NULL){
    // the style don't exist, create new text style
    hTStyle = lcDrwAddTextStyle( hDrw, szTextStyle, szFontName, true );
  }
  // set current text style
  lcPropPutHandle( hDrw, LC_PROP_DRW_TEXTSTYLE, hTStyle );
  // add barcodes
  W = 50.0;
  H = 10.0;
  X = W / 2.0;
  Y = H / 2.0;
  hEnt = lcBlockAddBarcode( hBlock, LC_BARTYPE_EAN13, X, Y, W, H, L"4600987001203" );
  Y = Y + (H * 1.5 );
  hEnt = lcBlockAddBarcode( hBlock, LC_BARTYPE_CODE128, X, Y, W, H, L"Code 128" );
  lcPropPutFloat( hEnt, LC_PROP_BARC_TEXTH, 0.3 );
  lcPropPutInt( hEnt, LC_PROP_BARC_TEXTALIGN, 0 );
  Y = Y + (H * 1.5 );
  hEnt = lcBlockAddBarcode( hBlock, LC_BARTYPE_CODE93, X, Y, W, H, L"1234567890" );
  lcPropPutBool( hEnt, LC_PROP_BARC_HIDETEXT, true );
  Y = Y + (H / 2.0 );
  dx = W / 4.0;
  W = W * 0.35;
  X = dx;
  Y = Y + dx;
  hEnt = lcBlockAddBarcode( hBlock, LC_BARTYPE_DM, X, Y, W, 0, L"Data Matrix 12345" );
  X = X + dx + dx;
  hEnt = lcBlockAddBarcode( hBlock, LC_BARTYPE_QR, X, Y, W, 0, L"This is QR code" );
  // update extents
  lcBlockUpdate( hBlock, true, 0 );
  // zoom extents
  lcWndZoomRect( hLcWnd, 0, 0, 0, 0 );
}
This will create a drawing as shown on the picture below:



Used functions:

lcBlockAddBarcode
lcBlockUpdate

lcDrwAddTextStyle
lcDrwGetObjectByName

lcPropGetHandle
lcPropPutHandle
lcPropPutFloat
lcPropPutInt
lcPropPutBool

lcWndZoomRect