Шрифты Live Type не появятся после экспорта в SVG из Illustrator CC - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь экспортировать несколько наших файлов дизайна для браузера, который мы создаем для нашего сайта.Как гласит заголовок, я столкнулся с проблемой, когда живой тип не будет отображаться в браузере.

Я не только использую 3 системных шрифта, я включил 4 различных формата каждого (ttf, woff /2, otf и svg) в корневом каталоге SVG.Независимо от того, что я пробовал, я не могу отобразить текст в центре значка и текст, отображающий соответствующий шрифт.Ниже приведен код SVG (я пропустил объявления шрифтов для шрифта Book):

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 198.43 119.06" style="enable-background:new 0 0 198.43 119.06;" xml:space="preserve">
<defs>
  <style type="text/css">
    @font-face {
     font-family: 'Algerian';
     src: url('Algerian.eot');
     src: url('Algerian.woff') format('woff'), url('Algerian.ttf') format('truetype'), url('Algerian.svg#Algerian') format('svg');
     font-weight: normal;
     font-style: normal;
    }

    .st0{display:none;}
    .st1{display:inline;}
    .st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
    .st3{fill-rule:evenodd;clip-rule:evenodd;fill:#232020;}
    .st4{fill:#231F20;}
    .st5{font-family:'STSong';}
    .st6{font-size:9.4647px;}
    .st7{fill:none;}
  </style>
</defs>

<g id="Image_xA0_332" class="st0">
  <g class="st1">
    <rect x="51.55" y="58.03" class="st2" width="93.61" height="9.06"/>
  </g>
</g>
<g>
  <path />...
  <polygon points="110.4,18.87 110.41,18.91 110.37,18.9     "/>
</g>
<g id="Right_Line_1_">
  <g>
    <rect x="132.27" y="61.86" class="st3" width="9.74" height="0.88"/>
  </g>
</g>
<g id="Left_Line_1_">
  <g>
    <rect x="54.69" y="61.86" class="st3" width="9.74" height="0.88"/>
  </g>
</g>


<text transform="matrix(1 0 0 1 65.5015 64.6816)">
  <tspan x="0" y="0" class="st4 st5 st6">EST.</tspan>
  <tspan x="20.15" y="0" class="st4 st5 st6"> </tspan>
  <tspan x="21.95" y="0" class="st4 st5 st6">06.27.2014</tspan>
</text>

<path id="SVGID_x5F_1_x5F_" class="st7" d="M8.19,96.94c0,0,38.04,5.57,89.4-5.56c0,0,59-14.38,92.17-0.62"/>

<text>
  <textPath  xlink:href="#SVGID_x5F_1_x5F_" startOffset="0%">
    <tspan style="fill:#FFFFFF; font-family:'BookmanOldStyle-Bold'; font-size:16.6697px;">ALEX &amp; MARCIA</tspan>
  </textPath>
</text>

<path id="SVGID_x5F_2_x5F_" class="st7" d="M32.56,57.72"/>

<text>
  <textPath  xlink:href="#SVGID_x5F_2_x5F_" startOffset="0%">
    <tspan class="st4" style="font-family:'Algerian'; font-size:29.2545px;">SANCHEZ</tspan>
  </textPath>
</text>
</svg>

Чего мне не хватает?Я даже пытался встроить файлы шрифтов SVG как base64 в объявления font-face.

1 Ответ

0 голосов
/ 21 февраля 2019

Думаю, проблема в том, что вы добавили объявление @font-face в самого SVG.Если вы помещаете SVG-файл в HTML-файл, вы можете переместить @font-face CSS в HTML-документ:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Example</title>
    <style>
      @font-face {
        font-family: 'Example';
        src: url('Example-Regular.woff2') format('woff2');
        font-weight: normal;
        font-style: normal;
      }
    </style>
  </head>
  <body>
    <!-- Your exported SVG file, with the SVG Font export setting kept as “SVG”: -->
    <svg version="1.1"
         xmlns="http://www.w3.org/2000/svg"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         x="0" y="0"
         viewBox="0 0 198 119">
        <defs>
          <style type="text/css">
            /* I removed the @font-face declaration
             * here, it’s just the exported CSS now. */
            .st5 { font-family: 'Example' ;}

            /* Etc. */
          </style>
        </defs>
        <!-- Etc. -->
        <text transform="matrix(1 0 0 1 65 64)">
          <tspan x="0" y="0" class="st4 st5 st6">EST. 06.27.2014</tspan>
        </text>
    </svg>
  </body>
</html>

Этот подход хорошо работает, когда вы:

  1. Уже используете те же файлы веб-шрифтов на сайте, что и в SVG, и
  2. Используя встроенный SVG, а не как изображение

Если вам нужно использоватьSVG в теге изображения выглядит так:

<img src="path/to/my-svg.svg" alt="Description of text in the SVG" />

… тогда вам нужно будет набросать тип при экспорте из Illustrator.Вместо того, чтобы делать это в самом файле Illustrator, вы можете оставить тип «живым» и изменить настройки экспорта SVG, нажав эту крошечную шестерню ⚙️ на панели настроек экспорта:

The Adobe Illustrator SVG export settings cog

Теперь вы можете выбрать SVG на боковой панели и изменить настройки экспорта SVG:

The Adobe Illustrator SVG export settings panel and options

Попробуйте изменить этот параметр на«Скрывать контуры». Возможно, вы также можете снизить десятичную точность до 2 или 3.

Этот подход хорошо работает, если вам:

  • Необходимо использовать SVG в качестве внешнего изображенияв элементе img или
  • Используются шрифты, которые не будут использоваться в качестве веб-шрифтов на сайте, или

Я переключаюсь между этими параметрами в зависимостина такие вещи, как то, что шрифты уже будут на сайте, должен ли контент рассматриваться как текст или как изображение, и сложность SVG.

Также важно добавить или улучшить заголовок иописание в гоSVG, если текст выделен, но по-прежнему является частью содержимого сайта, как и любое другое изображение.

В вашем конкретном SVG текст белый, и есть хотя бы одна часть,может быть «вне холста», поэтому, возможно, стоит сделать простой пример SVG для тестирования.

Надеюсь, что один из этих подходов полезен!

...