首页 > 解决方案 > Madcap Flare 不会在 PDF 输出中生成正确的字体

问题描述

我正在尝试使用 MadCap Flare 项目生成 pdf 文件,但 PDF 文件的字体错误。我正在使用最新版本的 Flare,2019r2。

我正在尝试使用 Duotype 的 Flexo 字体生成段落。所有字体都安装在 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 的输出。

任何帮助将非常感激。

标签: cssmadcap

解决方案


试试这个,来自https://www.madcapsoftware.com/blog/madcap-flare-tip-use-custom-fonts-flare-outputs/

@font-face 规则可以将“font-family”定义为任何名称。但是,我建议使用 Flare 中的默认名称。您可以通过转到主页功能区并选择字体下拉菜单来找出 Flare 正在读取字体的名称。我推荐这样做的原因是,如果字体名称与下拉列表中显示的不同,则 PDF 输出必须指向与 HTML5 输出不同的字体名称。

您在示例中显示的名称看起来像文件系统上的名称,不一定是功能区中显示的名称。


推荐阅读