【问题标题】:Can I convert embedded base64 encode font to a font file?我可以将嵌入的 base64 编码字体转换为字体文件吗?
【发布时间】:2012-09-13 22:43:56
【问题描述】:

我有一个@font-face 规则,它看起来像这样:

@font-face{
    font-family:'F';
src:url("") format("embedded-opentype"),
url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAA ... ETC... ETC

我可以把它转换成字体文件吗?

谢谢!

【问题讨论】:

    标签: fonts font-face typeconverter


    【解决方案1】:
    1. 复制:

      data:application/x-font-woff;charset=utf-8;base64,d09GRgABAA ...ETC
      
    2. 粘贴到浏览器地址栏,按回车。

      - A save as window appear -
      
    3. 选择要保存到的文件夹(例如:mywebsite/fonts),文件名:myfont.woff

      - you now have myfont.woff in a folder -
      
    4. 包含在 css 中:

      @font-face {
         font-family: 'myfont';
         src: url('fonts/myfont.woff');
         font-weight: normal;
         font-style: normal;
      }
      
    5. 添加到一个类:

      .headline {
      font-family: 'myfont', Helvetica, Arial, sans-serif;
      }
      

    完成。 ?

    (请注意,您必须使用与 data:URI 语法中声明的文件格式相同的文件格式。在您的情况下 ...application/x-font-woff... 因此 myfont.woff)

    【讨论】:

      【解决方案2】:

      @mcrumley 的回答是正确的,但对于那些无法弄清楚和/或害怕命令行的人,我有另一种方法。

      我刚刚在 Google 上搜索了您的问题,发现 http://base64converter.com/ 可以将任何 base64 文件转换/解码(和编码)回其原始格式。过去我用它来编码和解码 base64 图像,但这是我第一次尝试使用字体。作为测试,我插入了在随机网页的 css 文件中找到的嵌入式 base64 字体信息。您不想要整个条目,请留下 css 信息,否则转换将失败。

      1. (例如)删除base64之前的这个信息:

        @font-face{font-family:"Example";src:url(data:application/x-font-woff;base64,
        
      2. 从最后删除:

        ;font-weight:400;font-style:normal}
        
      3. 您将留下 base64 编码数据,将其粘贴到“输入”字段中,选择“解码”作为输出并按下按钮。它将创建一个名为 download.bin 的文件:单击它进行下载。然后将文件扩展名从bin 更改为woff(您的字体文件类型可能不同,但它会在css 中说明)。我能够打开 .woff 文件并且转换工作完美;不仅所有的轮廓都被保存了,字形名称、opentype 特征、字距调整和所有内容都被保存了。

      当然,与任何用于翻录网络字体的方法一样,输出的字形数量可能仅限于相关页面上使用的字形。

      如果woff 文件不是您需要的,有很多在线工具可以将woff 转换为您选择的格式。或者,如果您需要离线工具,请查看我提出的这个问题以及我收到的答案:

      Modify Python Script to Batch Convert all "WOFF" Files in Directory

      【讨论】:

        【解决方案3】:

        复制 base64 编码部分并进行转换。有很多方法可以做到这一点。

        Linux

        base64 -d base64_encoded_font.txt > font.woff
        

        Mac OS X

        openssl base64 -d -in base64_encoded_font.txt -out font.woff
        

        Windows

        转到http://www.motobit.com/util/base64-decoder-encoder.asp 并粘贴文本。选择“从Base64字符串解码数据(base64解码)”和“导出到二进制文件”。

        【讨论】:

        • 谢谢。我尝试了 windows 方法 - 很棒的工具(可能需要图形设计师的帮助 :) 在命名我的文件 myfont.woff 后,我去了 font-squirrel 并转换为我需要的所有字体(.eot、.ttf 等) .
        • 我在 OS X 中,这里的 openssl 方法对我不起作用,但使用 base64 的 Linux 解决方案可以(使用选项 -D 而不是 -d)跨度>
        猜你喜欢
        • 2021-04-20
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2012-02-05
        • 2015-05-21
        • 2020-07-25
        • 2012-03-07
        • 2018-02-27
        相关资源
        最近更新 更多