gpt4 book ai didi

c# - 在 asp.net web 服务器上安装字体

转载 作者:行者123 更新时间:2023-11-30 16:59:49 27 4
gpt4 key购买 nike

我在我的 asp.net 网站中使用此代码。它的条形码生成代码..问题这个代码是依赖于(IDAutomationHC39M)这个字体。所以在本地主机上我已经在我的字体文件夹中安装了这个字体并且代码在本地成功运行。但我不知道如何在服务器上安装它

   string barCode =  Request.QueryString["id"].ToString();
System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
using (Bitmap bitMap = new Bitmap(barCode.Length * 40, 80))
{
using (Graphics graphics = Graphics.FromImage(bitMap))
{
Font oFont = new Font("IDAutomationHC39M", 16);

PointF point = new PointF(2f, 2f);
SolidBrush blackBrush = new SolidBrush(Color.Black);
SolidBrush whiteBrush = new SolidBrush(Color.White);
graphics.FillRectangle(whiteBrush, 0, 0, bitMap.Width, bitMap.Height);
graphics.DrawString("*" + barCode + "*", oFont, blackBrush, point);
}
using (MemoryStream ms = new MemoryStream())
{
bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] byteImage = ms.ToArray();

Convert.ToBase64String(byteImage);
imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
}
plBarCode.Controls.Add(imgBarCode);
}

最佳答案

假设基于 Web 的字体不起作用(即您需要在服务器端呈现条码并可能将其与其他图形/图像嵌入),您可以采用以下方法。这段代码不是我写的,但我已经使用过了,它确实有效。

您需要从资源或可能通过 URL 加载字体。然后将这些位传递给以下内容。如果从资源加载,请用谷歌搜索,因为有很多示例。

您还可以使用 fontCollection.AddFontFile() 并简化您的代码,但这需要访问本地(在服务器上)文件系统。

public FontFamily GetFontFamily(byte[] bytes)
{
FontFamily fontFamily = null;

var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned);

try
{
var ptr = Marshal.UnsafeAddrOfPinnedArrayElement(bytes, 0);
var fontCollection = new PrivateFontCollection();
fontCollection.AddMemoryFont(ptr, bytes.Length);
fontFamily = fontCollection.Families[0];
}
finally
{
// don't forget to unpin the array!
handle.Free();
}

return fontFamily;
}

关于c# - 在 asp.net web 服务器上安装字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23158288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com