温馨提示:本文翻译自stackoverflow.com,查看原文请点击:pdf - Using ttf font in Labelary api via c#
c# pdf zpl

pdf - 通过C#在Labeling api中使用ttf字体

发布于 2021-02-07 23:24:02

我正在尝试使用标签网络服务将现有的zpl代码转换为pdf文件现有的zpl标签模板使用Consolas.ttf预加载的字体。标签文档说可以使用〜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);
        }

我得到以下结果pdf中的标签创建时没有Consolas字体。那么,我在做什么错呢?

查看更多

提问者
V. Y.
被浏览
0
V. Y. 2020-10-13 18:23

将Base64编码替换为Hex编码后,问题已修复。已更换

Convert.ToBase64String(File.ReadAllBytes(@"C:\folderWithFonts\consolas.TTF"))

BitConverter.ToString(File.ReadAllBytes(@"C:\folderWithFonts\consolas.ttf")).Replace("-", "")