バーコードラベル印刷2

バーコードラベル印刷だけど、現状はExcelのリストとワードの差し込み印刷
対応している。

これで、A4一枚に65個のシールのラベルに印刷してる。

EAN13というフォントをWindowsにインストールすればOK。

http://grandzebu.net/informatique/codbar-en/ean13.htm
上記にのっているVBのプログラムをそのまま、VBAに作って
完成。

でもワードの差し込みだと若干ずれてくる。
結局、WEBで挑戦してみた。できた。
上記WEBに乗ってるVBの関数をJavaScriptにして
あとは同様。

cnv_ean13(JANコード文字列)
で得られた文字列を、フォントに"Code EAN13"
を指定すればバーコードができた。

<div style="font-family:Code EAN13;">
ここにcnv_ean13の結果を配置
</div>

======================
function cnv_ean13(chain){
 var CodeBarr;
 var num=new Array(0,1,2,3,4,5,6,7,8,9);
 var nu1= new Array("A","B","C","D","E","F","G","H","I","J");
 var nu2= new Array("K","L","M","N","O","P","Q","R","S","T");
 var nu3= new Array("a","b","c","d","e","f","g","h","i","j");
 var x=({
  3:{0:1,1:1,2:1,3:1},
  4:{0:1,4:1,7:1,8:1},
  5:{0:1,1:1,4:1,5:1,9:1},
  6:{0:1,2:1,5:1,6:1,7:1},
  7:{0:1,3:1,6:1,8:1,9:1}
 });

 if(chain.length==12){
  var i;
  for(i=0;i<12;i++){
   var c=chain.substr(i,1);
   if(c in num){
    continue;
   }else{
    break;
   }
  }

  var checksum=0;
  if(i==12){
   for(i=1;i<12;i=i+2){
    checksum+=parseInt(chain.substr(i,1));
   }
   checksum*=3;

   for(i=0;i<12;i=i+2){
    checksum+=parseInt(chain.substr(i,1));
   }
   chain=chain+""+*1;
   CodeBarr=chain.substr(0,1)+nu1[n];
   var first=parseInt(chain.substr(0,1));

   for(i=3;i<=7;i++){
    var y=x[i];
    if(first in y){
     CodeBarr+=""+nu1[parseInt(chain.substr(i-1,1))];
    }else{
     CodeBarr+=""+nu2[parseInt(chain.substr(i-1,1))];
    }
   }

   CodeBarr+="*";
   for(i=8;i<=13;i++){
    CodeBarr+=""+nu3[parseInt(chain.substr(i-1,1))];
   }
   CodeBarr+="*";
  }
 }
 return(CodeBarr);
}

*1:10-checksum%10)%10);

   var n=parseInt(chain.substr(1,1