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;
}