Reporting services SSRS中的条形码

Reporting services SSRS中的条形码,reporting-services,ssrs-2008,ssrs-2008-r2,ssrs-2012,Reporting Services,Ssrs 2008,Ssrs 2008 R2,Ssrs 2012,我目前正在运行SSRS 2012,希望在我的一份报告中实现条形码,我在网上读到了很多关于人们在尝试这样做时遇到的问题的信息,尽管我会在这里发布,并试图避免陷阱 正如我所说,我已经安装了SSRS 2012,我还有一些条形码TTF文件,我们需要用于其他用途。我的问题是,这是否可以用于将我的0100415332转换为可以扫描的条形码?我需要把这些文件放在哪里?我已经读到,它们需要放在客户端计算机上的C:\Windows\Fonts中,但在服务器端的哪里 在此之后,我相信您可以更改报告中包含条形码的相关

我目前正在运行SSRS 2012,希望在我的一份报告中实现条形码,我在网上读到了很多关于人们在尝试这样做时遇到的问题的信息,尽管我会在这里发布,并试图避免陷阱

正如我所说,我已经安装了SSRS 2012,我还有一些条形码TTF文件,我们需要用于其他用途。我的问题是,这是否可以用于将我的0100415332转换为可以扫描的条形码?我需要把这些文件放在哪里?我已经读到,它们需要放在客户端计算机上的C:\Windows\Fonts中,但在服务器端的哪里

在此之后,我相信您可以更改报告中包含条形码的相关文本字段的字体,并且可以转换和扫描某些内容

任何帮助都是我可能出错的地方,或者在开始这项工作之前,我可能需要做些什么,我将不胜感激


谢谢p

您应该能够在计划使用的服务器上简单安装条形码字体。

此外,虽然code3of9是一种易于管理的条形码,但它很容易出错,因为它没有校验和。您的条形码可能会损坏,并返回一个不同于其应有值的值。对于使用校验和(如Code128)的条形码字体,如果条形码读取的内容与校验和不匹配,则不会读取条形码。我强烈建议使用带有以下函数的Code128返回带有校验和的条形码

Public Function GetBarCode(InString as string)
Dim nSum As Decimal, i As Decimal, checkdigit as Decimal
Dim Checksum As Decimal, Checkchar As Decimal
Dim MyString As String, CVal As Decimal, sValues as string

sValues = "ä!" + chr(34) + "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzÂÃÄÅÆÇÈÉÊËÌÍ"
' Initialize running total with value of Subset B start character
nSum = 104

' Scan the string and add character value times position
For i = 1 To Len(InString) Step 1    
    MyString = Mid(InString, i, 1)
    ' Get the numeric value of the character and subtract 32 to shift (the space character, ASCII value 32, has a numeric value of 0 as far as Code 128 is concerned)
    CVal = instr(svalues,mystring)-1
    ' Add the weighted value into the running sum
    nSum = nSum + (CVal * i)
Next i
' Calculate the Modulo 103 checksum
Checksum = nSum Mod 103
if checksum = 0 then checksum = 174
' Now format the final output string: start character, data, check character, and stop character
MyString = "{" +  InString + right(left(sValues,Checksum),1) + "~"
MyString = Replace (MyString," ", "ä")
GetBarCode = MyString

End Function
公共函数GetBarCode(以字符串形式插入)
Dim nSum为十进制,i为十进制,校验位为十进制
Dim校验和为十进制,Checkchar为十进制
Dim MyString作为字符串,CVal作为十进制,sValues作为字符串
sValues=“ä!”+chr(34)+“$%”和“()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ ` ABCDEFGHIJKLMNOPQRSTUVWXYZ
'使用子集B开始字符的值初始化运行总计
nSum=104
'扫描字符串并将字符值乘以位置
对于i=1至Len(安装)步骤1
MyString=Mid(InString,i,1)
'获取字符的数值并减去32进行移位(空格字符,ASCII值32,就代码128而言,其数值为0)
CVal=仪表(S值,mystring)-1
'将加权值添加到运行总和中
nSum=nSum+(CVal*i)
接下来我
'计算模103校验和
校验和=nSum模块103
如果校验和=0,则校验和=174
'现在格式化最终输出字符串:开始字符、数据、检查字符和停止字符
MyString=“{”+InString+right(左(S值,校验和),1)+”~”
MyString=Replace(MyString,“,”ä)
GetBarCode=MyString
端函数

使用程序集生成图像而不是使用TTF字体是一种选择吗?您使用的是什么条形码格式?code39?code 128?不同的条形码格式需要不同的起止字符。我在一份报告中使用了“3of9”字体-似乎在很大程度上取决于阅读器和打印机的质量,以确定条形码是否符合要求不管读不读,我在导出为PDF并从PDF打印时比直接从IE打印时更成功。@PJD你解决过这个问题吗?我也有同样的问题