BarTender实现rdl报表生成二维码

准备

通过第三方软件BarTender的SDK扩展实现,本次测试使用的版本为:BarTender2016R9版本,该版本可从各下载平台下载。

注意

  1. 版本安装时,可以选择试用,即可试用所有功能,如若不选择试用,则需要选择Automation版本,否则无法实现。
  2. 该软件为收费软件,需自行解决授权问题,如若试用或授权过期则可能生成二维码时会报错。

原理

  1. 通过BarTenderSDK实现自动化生成二维码图片
  2. 再将生成的二维码图片读取为Byte[]数组,以便rdl报表中可以试用

步骤

  1. 在ReportServer所在的服务器上安装BarTender软件
  2. 安装完成后,从BarTender安装目录C:\Program Files\Seagull\BarTender Suite\SDK\Assemblies内复制Seagull.BarTender.Print.dll文件至C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin目录,该目录为ReportServer的安装目录,默认安装会存在于上述路径。
  3. 使用BarTender软件制作QRCode模板,需要创建具名数据源,在添加条形码后修改其属性的数据源为嵌入的数据,选择类型为链接到现有的具名数据源即可,保存模板。
  4. 打开报表属性,点击引用标签,点击添加或删除程序集下的添加按钮,浏览至1中的目录,选择Seagull.BarTender.Print.dll文件,点击打开即可,该dll也是基于.NET Framework4.0开发。
  5. 点击代码标签,添加下列代码,btw_path为此前创建的btw模板文件所在路径,该路径可自由设置,尽量放置在非系统目录下。pic_path为所生成的二维码图片所在路径,可与btw模板文件在同一目录。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Public Function QRCode(ByVal stringText as String) as Byte()
    Const btw_path As String = "C:\Temp\SNM_BT_JobNum.btw"
    Const pic_path As String = "C:\Temp\tmp.jpg"
    Try
    Dim btEngine As Seagull.BarTender.Print.Engine = New Seagull.BarTender.Print.Engine(True)
    Dim labelFormat As Seagull.BarTender.Print.LabelFormatDocument = btEngine.Documents.Open(btw_path)
    'JobHead为创建的btw模板中具名数据源的名字,根据自定义内容修改
    labelFormat.SubStrings.SetSubString("JobHead", stringText)
    labelFormat.ExportImageToFile(pic_path, Seagull.BarTender.Print.ImageType.JPEG, Seagull.BarTender.Print.ColorDepth.ColorDepth256, New Seagull.BarTender.Print.Resolution(96),Seagull.BarTender.Print.OverwriteOptions.Overwrite)
    labelFormat.Close(Seagull.BarTender.Print.SaveOptions.DoNotSaveChanges)
    btEngine.Stop()
    Catch ex As Exception
    'Return ex.ToString()
    End Try
    Return System.IO.File.ReadAllBytes(pic_path)
    End Function
  6. 关闭报表属性,在报表所需位置内插入图像,在打开的图像属性中,选择图像来源为数据库,使用此字段填写表达式为=Code.QRCode("This is a test. " + Fields!QRDemo.Value)括号中填写你需要显示在二维码中的字段,使用此MIME类型选择image/png
  7. 关闭图像属性,点击运行报表即可预览。

参考

  1. BarTender安装目录下的SDK目录中有相关SDK Help文档,具体路径:C:\Program Files\Seagull\BarTender Suite\SDK\BarTender .NET SDK Help