通过 C# 在 Labelary api 中使用 ttf 字体
Using ttf font in Labelary api via c#
我正在尝试使用 labelary web service 将现有的 zpl 代码转换为 pdf 文件。现有的 zpl 标签模板使用 Consolas.ttf 预加载字体。 Labelary 文档说可以使用 ~DU 命令。我正在尝试使用此 c# 代码来实现由 Consolas.ttf 字体编写的“teststring”标签。
byte[] zpl = Encoding.UTF8.GetBytes($@"^xa^CI~DUR:consolas.TTF,44676,{Convert.ToBase64String(File.ReadAllBytes(@"C:\folderWithFonts\consolas.TTF"))}
^fo100,0^A@r,300,300,R:consolas.TTF^fdTESTSTRING^fs^xz");
var request = (HttpWebRequest)WebRequest.Create("http://api.labelary.com/v1/printers/8dpmm/labels/4.1x5.8/0/");
request.Method = "POST";
request.Accept = "application/pdf";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = zpl.Length;
var requestStream = request.GetRequestStream();
requestStream.Write(zpl, 0, zpl.Length);
requestStream.Close();
try
{
var response = (HttpWebResponse)request.GetResponse();
var responseStream = response.GetResponseStream();
var fileStream = File.Create(@"C:\folderWithResult\label.pdf");
responseStream.CopyTo(fileStream);
responseStream.Close();
fileStream.Close();
}
catch (WebException e)
{
Console.WriteLine("Error: {0}", e.Status);
}
我得到以下 result。 pdf 中的标签是在没有 Consolas 字体的情况下创建的。那么,我做错了什么?
将 Base64 编码替换为 Hex 编码后问题已解决。已替换
Convert.ToBase64String(File.ReadAllBytes(@"C:\folderWithFonts\consolas.TTF"))
到BitConverter.ToString(File.ReadAllBytes(@"C:\folderWithFonts\consolas.ttf")).Replace("-", "")
我正在尝试使用 labelary web service 将现有的 zpl 代码转换为 pdf 文件。现有的 zpl 标签模板使用 Consolas.ttf 预加载字体。 Labelary 文档说可以使用 ~DU 命令。我正在尝试使用此 c# 代码来实现由 Consolas.ttf 字体编写的“teststring”标签。
byte[] zpl = Encoding.UTF8.GetBytes($@"^xa^CI~DUR:consolas.TTF,44676,{Convert.ToBase64String(File.ReadAllBytes(@"C:\folderWithFonts\consolas.TTF"))}
^fo100,0^A@r,300,300,R:consolas.TTF^fdTESTSTRING^fs^xz");
var request = (HttpWebRequest)WebRequest.Create("http://api.labelary.com/v1/printers/8dpmm/labels/4.1x5.8/0/");
request.Method = "POST";
request.Accept = "application/pdf";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = zpl.Length;
var requestStream = request.GetRequestStream();
requestStream.Write(zpl, 0, zpl.Length);
requestStream.Close();
try
{
var response = (HttpWebResponse)request.GetResponse();
var responseStream = response.GetResponseStream();
var fileStream = File.Create(@"C:\folderWithResult\label.pdf");
responseStream.CopyTo(fileStream);
responseStream.Close();
fileStream.Close();
}
catch (WebException e)
{
Console.WriteLine("Error: {0}", e.Status);
}
我得到以下 result。 pdf 中的标签是在没有 Consolas 字体的情况下创建的。那么,我做错了什么?
将 Base64 编码替换为 Hex 编码后问题已解决。已替换
Convert.ToBase64String(File.ReadAllBytes(@"C:\folderWithFonts\consolas.TTF"))
到BitConverter.ToString(File.ReadAllBytes(@"C:\folderWithFonts\consolas.ttf")).Replace("-", "")