NekoNao Ответов: 0

Отображение штрих - кода в crystal report без установки шрифта на стороне клиента


У меня есть ASP.Net программа, которая показывает отчет crystal, но проблема заключается в том, чтобы показать, если штрих-код. Штрих-код не будет отображаться, если шрифт не установлен на компьютере клиента. Есть ли способ показать штрих - код без его установки?

Что я уже пробовал:

Я пробовал передавать байт в datatable с помощью столбца byte. Но что-то кажется неправильным или недостающим;

Суб GenerateReport
Dim dt As New DataTable()
dt.Columns.Add("colBarcode", GetType(Byte()))
Dim dr As DataRow = dt.NewRow()
dr("colBarcode") = code.Token(cntnum)
dt.Rows.Add(dr)

reportDocument.Database.Tables(0).SetDataSource(dt)


Конец Подводной Лодки

Public Function Tokhgen(ByVal a As String) As Byte()
       Dim text As String = "*" + a + "*"
       Dim bitmap As New Bitmap(1, 1)

       'Adding font as private font
       Try
           Dim fontName As String = "IDAutomationHC39M Free Version.otf"
           Dim pfcoll As New PrivateFontCollection()
           'put a font file under a Fonts directory within your application root
           pfcoll.AddFontFile(System.Web.Hosting.HostingEnvironment.MapPath(Convert.ToString("~/style/") & fontName))
           Dim myFontFamily As FontFamily = pfcoll.Families(0)


           '  Dim myFontFamily As New FontFamily("IDAutomationHC39M Free Version")
           Dim font As New Font(myFontFamily, 200, FontStyle.Regular, GraphicsUnit.Pixel)
           Dim graphics__1 As Graphics = Graphics.FromImage(bitmap)
           Dim width As Integer = CInt(graphics__1.MeasureString(text, font).Width)
           Dim height As Integer = CInt(graphics__1.MeasureString(text, font).Height)
           bitmap = New Bitmap(bitmap, New Size(width, height))
           graphics__1 = Graphics.FromImage(bitmap)
           graphics__1.Clear(Color.White)
           graphics__1.SmoothingMode = SmoothingMode.AntiAlias
           graphics__1.TextRenderingHint = TextRenderingHint.AntiAlias
           graphics__1.DrawString(text, font, New SolidBrush(Color.FromArgb(0, 0, 0)), 0, 0)
           graphics__1.Flush()
           graphics__1.Dispose()

           Dim ms As New MemoryStream()
           bitmap.Save(ms, ImageFormat.Jpeg)

           Dim base64Data = Convert.ToBase64String(ms.ToArray())



           Return ms.ToArray()
       Catch ex As Exception

       End Try
   End Function

0 Ответов