我有一个Web应用程序,我需要在文本中使用字体并在网页上显示。实际上是条形码。 所以这个字体从字符串中获取条形码。我在Windows应用程序上做了类似的一个,如下面
Dim exeCurrent As [Assembly] = [Assembly].GetExecutingAssembly()
'Dim nameSpc As String = exeCurrent.GetName().Name.ToString()
Dim nameSpc As String = Main.GetType.Namespace
_pfc = New PrivateFontCollection
Dim loadStream As Stream = exeCurrent.GetManifestResourceStream( _
nameSpc & "." & fontName)
Dim byteBuffer(CType(loadStream.Length, Integer)) As Byte
loadStream.Read(byteBuffer, 0, Int(CType(loadStream.Length, Integer)))
Dim fontPtr As IntPtr = Runtime.InteropServices.Marshal.AllocHGlobal( _
Runtime.InteropServices.Marshal.SizeOf(GetType(Byte)) * _
byteBuffer.Length)
Runtime.InteropServices.Marshal.Copy(byteBuffer, 0, fontPtr, byteBuffer.Length)
_pfc.AddMemoryFont(fontPtr, byteBuffer.Length)
Dim pcFonts As Int32 = 1
AddFontMemResourceEx(fontPtr, byteBuffer.Length, 0, pcFonts)
这段代码来自SO和代码项目。它完成了这项工作。但是当谈到Web应用程序时,我不知道如何做同样的事情。我的字体文件存储在项目applciation文件夹中。 有人可以帮助我在网络应用程序中获取此功能
答案 0 :(得分:0)
如果您有权分发TTF文件,则可以使用CSS创建@font-face
声明。然后,您只需键入数字并通过font-family
分配条形码字体:
答案 1 :(得分:0)
所以现在我找到了自己的解决方案。我们需要的只是内存流,它将数据写入marshal.alloccotaskmem(length)。其中length是内存流data.length
Dim data1 As Byte()
Dim ms As New MemoryStream
' Using ms As New MemoryStream()
Using file As New FileStream(strpath, FileMode.Open, FileAccess.Read)
Dim bytes As Byte() = New Byte(file.Length - 1) {}
file.Read(bytes, 0, CInt(file.Length))
ms.Write(bytes, 0, CInt(file.Length))
End Using
data1 = ms.ToArray()
这绝对适用于我想用作条形码的每种字体,因此在我的网络应用程序中也是如此
答案 2 :(得分:-1)
如果我说错了,你就会问如何在aspx上动态生成图像。
以下是一些可以解释的示例文章。