首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Madcap Flare无法在PDF输出中生成正确的字体

Madcap Flare无法在PDF输出中生成正确的字体
EN

Stack Overflow用户
提问于 2019-11-28 22:03:42
回答 3查看 626关注 0票数 3

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

我正在尝试生成段落使用柔印字体从双字。所有的字体都安装在主Windows字体目录中: C:\Windows\Fonts\DUROTYPE_-_FLEXO-REGULAR_1.OTF.这是通过右键单击字体并选择“为所有用户安装”来完成的。

这个问题的一个例子是h2风格。样式表在default部分中有以下声明:

代码语言:javascript
复制
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部分下,其中包含以下声明。

代码语言:javascript
复制
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;
}

当我将font -family定义为"font-family:" Flexo ",Arial,"Helvetica Neue",Helvetica,sans-serif;“时,我得到了Flexo字体的输出。然而,当我尝试"Flexo-BoldIt“或"Flexo -BoldIt”或“Flexo Bold Italic”或其他各种引号和字体名称的组合时,我得到了Microsoft Sans Serif的输出。当我尝试用显式声明覆盖样式时,

代码语言:javascript
复制
<h2 style="text-align: center;font-family: "Flexo-BoldIt"...">

输出同样以MS Sans Serif表示。

添加如下声明

代码语言:javascript
复制
font-style: italic;
font-weight: bold;

帮不上忙。

为什么Flare不能生成具有正确字体的输出?另外,为什么它不能用Arial生成输出,因为它已经安装了?如果我从字体系列中删除"Flexo-BoldIt“,我会得到Arial的输出。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2019-12-03 18:35:57

你在CSS中添加了font-face吗?

代码语言:javascript
复制
@font-face
{
   font-family: 'YourFontFamilyName';
   src: url(../path/to/font);
}

之后使用像这样的字体

代码语言:javascript
复制
h1
{
   font-family: 'YourFontFamilyName';
}

此外,将字体保存在项目文件中,以便您可以通过相对路径轻松访问它。

尝试一下,并给我反馈:)

更新

对于每个类似的项目,这更像是一个提示。

不要使用系统安装的字体,因为如果用户没有在他们的系统上安装该字体,它将是错误的。始终将字体文件放在项目目录中,并像上面那样访问它们。

票数 0
EN

Stack Overflow用户

发布于 2019-12-06 20:01:11

将字体文件转换为base64

代码语言:javascript
复制
@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;
}
票数 0
EN

Stack Overflow用户

发布于 2019-12-09 07:52:56

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

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

您在示例中显示的名称与文件系统上的名称相似,而不一定与功能区中显示的名称相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59090641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档