Madcap Flare не генерирует правильные шрифты при выводе PDF

Я пытаюсь сгенерировать файлы PDF с помощью проекта MadCap Flare, но в файлах PDF используется неправильный шрифт. Я использую последнюю версию Flare, 2019r2.

Я пытаюсь создать абзацы с помощью шрифтов Flexo от Duotype. Все шрифты устанавливаются в основной каталог шрифтов Windows: C:\Windows\Fonts\DUROTYPE_-_FLEXO-REGULAR_1.OTF. Это было достигнуто щелчком правой кнопкой мыши по шрифту и выбором "Установить для всех пользователей".

Пример проблемы - стиль h2. Таблица стилей содержит следующие объявления в разделе по умолчанию:

body
{
    padding: 0 20px;
}
...

body,
div,
li,
p
{
    color: #3b4151;
    font-family: FlexoRegular, Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 1em;
    font-weight: normal;
    margin: 0.5em 0;
    mc-hyphenate: never;
    orphans: 2;
    widows: 2;
}
...
h2
{
    color: #f8193f;
    font-family: FlexoBoldIt, Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-weight: normal;
    font-size: 1.67em;
    page-break-after: avoid;
}

Селектор, который я действительно хочу использовать, находится в разделе @media со следующими объявлениями.

body
{
    padding: 0;
    position: relative;
    margin: 0;
}

h2
{
    color: #f8193f;
    font-family: "Flexo-BoldIt", Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 9pt;
    margin-bottom: 0px;
    margin: 0px;
    margin-top: 6px;
}

Когда я определяю семейство шрифтов как "семейство шрифтов: Flexo, Arial, Helvetica Neue, Helvetica, sans-serif"; Я получаю на выходе шрифт Flexo. Однако, когда я пробую "Flexo-BoldIt" или "Flexo-BoldIt" или "Flexo Bold Italic" или различные другие комбинации кавычек и названий шрифтов, я получаю результат с использованием Microsoft Sans Serif. Когда я пытаюсь переопределить стиль явным объявлением, например

<h2 style="text-align: center;font-family: "Flexo-BoldIt"...">

вывод снова в MS Sans Serif.

Добавление объявлений типа

font-style: italic;
font-weight: bold;

не помогает.

Почему Flare не генерирует вывод с правильным шрифтом? Кроме того, почему он не генерирует вывод с помощью Arial, если он установлен? Если я удалю "Flexo-BoldIt" из семейства шрифтов, я получу результат с помощью Arial.

Любая помощь приветствуется.

3 ответа

Попробуйте это из https://www.madcapsoftware.com/blog/madcap-flare-tip-use-custom-fonts-flare-outputs/:

Правило @font-face может иметь "font-family" как любое имя. Однако я рекомендую использовать имя по умолчанию из Flare. Вы можете узнать, какое имя Flare читает шрифт, перейдя на главную ленту и выбрав раскрывающийся список "Шрифт". Причина, по которой я рекомендую это, заключается в том, что если имя шрифта отличается от того, что отображается в раскрывающемся списке, выходные данные PDF должны будут указывать на другое имя шрифта, чем ваши выходные данные HTML5.

Имя, которое вы показываете в примере, похоже на имя в файловой системе, а не обязательно на то, что отображается на ленте.

Вы добавили шрифт в CSS?

@font-face
{
   font-family: 'YourFontFamilyName';
   src: url(../path/to/font);
}

После этого используйте шрифт вроде

h1
{
   font-family: 'YourFontFamilyName';
}

Кроме того, храните свои шрифты в файлах проекта, чтобы вы могли легко получить к ним доступ по относительному пути.

Попробуйте и дайте мне обратную связь:)

ОБНОВИТЬ

Это скорее совет для каждого проекта, подобного этому.

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

Преобразуйте файл шрифта в base64

@font-face {
    font-family: 'myfont';
    src: url(data:font/truetype;charset=utf-8;base64,<<copied base64 string>>) format('truetype');
    font-weight: normal;
    font-style: normal;
}
Другие вопросы по тегам