【问题标题】:Barcodes in SSRSSSRS 中的条码
【发布时间】:2014-09-04 06:25:22
【问题描述】:

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

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

之后,我相信您能够更改报告中包含条形码的相关文本字段的字体,并获得转换并能够扫描的内容。

任何帮助是我可能会出错的地方,或者在开始之前我可能需要做的其他事情将不胜感激。

谢谢P

【问题讨论】:

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

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-2012


【解决方案1】:

您应该能够在您计划使用的服务器上简单地安装条形码字体。
https://docs.microsoft.com/en-us/windows/desktop/gdi/font-installation-and-deletion

此外,虽然 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

【讨论】:

    猜你喜欢
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多