C# 条码的数字算法

C# 条码的数字算法,c#,algorithm,barcode,C#,Algorithm,Barcode,我有这样的序列码,应该作为条形码打印在身份证上,但问题是这些号码的条形码大于身份证的宽度 9913010001此处为V0215 9913010002CHEREV0215 9913010003CHEREV0215 9913010004此处V0215 是否有可能通过使用生成固定位数的算法来减少位数 Ex-对于上述数字,有20个字符,使用算法可以将其减少到10个字符 不仅如此,我还需要从上面的条形码(10个字符的代码)中反转原始代码(20个字符) 有什么算法可以从C#中实现这一点吗?条形码背后并没

我有这样的序列码,应该作为条形码打印在身份证上,但问题是这些号码的条形码大于身份证的宽度

  • 9913010001此处为V0215
  • 9913010002CHEREV0215
  • 9913010003CHEREV0215
  • 9913010004此处V0215
是否有可能通过使用生成固定位数的算法来减少位数

Ex-对于上述数字,有20个字符,使用算法可以将其减少到10个字符

不仅如此,我还需要从上面的条形码(10个字符的代码)中反转原始代码(20个字符)


有什么算法可以从C#中实现这一点吗?

条形码背后并没有真正的算法。大多数条形码只是一系列行,其中每两行代表一个字符。条形码通常只需以特殊的条形码字体打印文本即可获得

打印较小的文件
您可以将其打印得更小,也可以使用不同类型的条形码。但是请注意,并非所有类型的条形码都支持所有这些字符。一些支持整个字母表,而另一些只支持数字

此外,您可以打印的大小也有限制。对于大多数条形码,有关于条形码周围最小尺寸、最小打印分辨率和最小空白量的官方指南

低于这些限制将影响条形码的可读性,使使用条形码的人更难阅读。但是你可以去掉一到两毫米的高度,如果你的纸张质量好,打印分辨率足够高,你可以稍微小一点

减少字符串长度
减少字符串的长度是一种可能,但请记住,您可以。如果你有关于字符串的具体知识,你可以使用它。例如,如果“切列夫”是一个固定的部分,人们可能会怀疑它是否应该成为条形码的一部分。[编辑]一开始我忽略了你说的不是常数的评论

仅限数字

字母条形码有更多的字符,因此通常更宽。如果可以将批次代码文本更改为数字,则可以使用更窄的仅限数字的条形码。

最好使用更小的条形码字体。。。(较细的线条-->较小的条形码)
CHEREV0215
零件是否为常量?如果是这样的话,你可以删除它,条形码数字将只是前10位数字。你需要更多关于你的数字是如何变化的以及什么是常量的信息。你可以按照@RB的建议去做,在代码中查找常量并删除它们。如果您正在寻找一种hasing算法来减小字符串的大小,恐怕它们只是单向的。因此,尽管它们会减小字符串的大小,但您将无法恢复原始字符串,因此这不是一个选项。CHEREV0215不是常量,它是一个批处理代码。前两位是机构ID,然后是时间戳(年/月)和个人ID号(4位),最后是批次代码(10位)