就一个DELPHI的方法。用于将ISBN 13位数字转换为ISBN barcode 字体对应的字符串编码
{  函数名称:EAN13Code
   输入参数:ISBN13Str: string  说明:人工可读的ISBN13编码字符串
   输出参数:string 说明:用于输出打印条码字体相应的字符串
   说明: ISBN13字符串 转换为 ISBN barcode 字体对应的字符串编码,
         以便使用ISBN barcode字体打印相应条形码。
         该条形码字体包含三种条码字符集:
         数字       0 1 2 3 4 5 6 7 8 9
         A字符集    0 1 2 3 4 5 6 7 8 9
         B字符集    A B C D E F G H I J
         C字符集    K L M N O P Q R S T
         前置符集             u v w x y
         中间符     *
         起始符/中止符 (         (9)   y
         后置符        >
         标准书号条形码格式:前置符 + 起始符 + 左侧数据符(ABBABA)+ 中间符
                             + 右侧数据符(CCCCCC)+ 中止符 + 后置符
         详细内容参考:GB/T 12906—2008 
 *}
function EAN13Code(ISBN13Str:string):string;
const
 ACharSet : array[0..9] of Char = ('0','1','2','3','4','5','6','7','8','9') ; //字符集A
 BCharSet : array[0..9] of Char = ('A','B','C','D','E','F','G','H','I','J') ; //字符集B
 CCharSet : array[0..9] of Char = ('K','L','M','N','O','P','Q','R','S','T') ; //字符集C
 HCharSet : array[5..9] of Char = ('u','v','w','x','y');//前置符集
var
 i: integer;
 EAN13Str : string;
beginif length(ISBN13Str)<>13 then result := '' else
begin
 EAN13Str := HCharSet[StrToInt(ISBN13Str[1])] + '('
           + ACharSet[StrToInt(ISBN13Str[2])]
           + BCharSet[StrToInt(ISBN13Str[3])]
           + BCharSet[StrToInt(ISBN13Str[4])]
           + ACharSet[StrToInt(ISBN13Str[5])]
           + BCharSet[StrToInt(ISBN13Str[6])]
           + ACharSet[StrToInt(ISBN13Str[7])] + '*';
 for i := 8 to 13 do
   EAN13Str := EAN13Str + CCharSet[StrToInt(ISBN13Str[i])];
 EAN13Str := EAN13Str + '(>'; Result := EAN13Str;
end;
不好意思。。没有多少分了 但是真的很着急需要。谢谢了delphic#条形码

解决方案 »

  1.   

    http://blog.csdn.net/johnsuna/article/details/577511
    看看文章是否对你有帮助
      

  2.   


    感谢回帖。 
    我上面那个Delphi的方法是把ISBN转换为另一种编码。您给我的地址里都是ISBN转条码或者条码转ISBN。
    不太符合我的目标。谢谢
      

  3.   

    -_-
    还以为有多少代码要转换呢?如果复杂的,可以用dephi.net编译成DLL,然后用refactor反编译成c#代码
    也可以在网上找找语言转换相关的软件(这个应该有很多的,但是估计会很多错误)如果只是几十行代码的,自己看两天语法,搞掂吧