php - TTF 字体不显示在动态 SVG 中

标签 php javascript html css svg

我有一个名为 svg.php 的文件,它将一些 TTF 文本放在 flex 的路径上并将其居中对齐。当我输入地址 localhost/AJAX/svg.php?initials=FOO 时,这个文件完美地显示了 TTF 字体

<?php
header('Content-Type: image/svg+xml');
?>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<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"
     width="380px" height="253px" viewBox="0 0 380 253" enable-background="new 0 0 380 253" xml:space="preserve">
<defs>
<style type="text/css"><![CDATA[
@font-face {
font-family: 'LHF';
src: url('LHF.ttf');
} 
text, textPath {
font-family:LHF;
}
]]></style>

<path id="path1" fill="none" d="M50.333,120.339 c92.778-24.903,185.556-24.903,278.334,0"/>

</defs>

<text x="100" y="500" font-size="100" style="fill:black;" text-anchor="middle"><textPath xlink:href="#path1" startOffset="50%"><?php echo $_GET["initials"]; ?></textPath></text>
</svg>

然而,当我从另一个页面调用图像时,T​​TF 字体被丢弃,例如 index.php:

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
var x=document.getElementById("fname").value;
document.getElementById("words").src="svg.php?initials=" + x;
}
</script>
</head>
<body>

<input type="text" id="fname" onkeyup="myFunction()"><br />

<img src="svg.php" id="words" />

</body>
</html>

有什么想法吗? 提前致谢

最佳答案

图像必须是完全独立的,即 privacy reasons 的所有内容都在一个文件中.

如果您希望 ttf 字体在 SVG 用作图像(在图像标签中或用作 CSS 图像背景)时起作用,您必须对其进行 base64 编码并将其作为数据 URL 嵌入到图像中。

@font-face {
    font-family: 'LHF';
    src: url("data:application/x-font-ttf;base64,[base-encoded font here]");
}

或者您可以使用 <object><iframe>标签而不是 <image>根据您的要求标记。

关于php - TTF 字体不显示在动态 SVG 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736073/

相关文章:

电子邮件正文中的 php mail 阿拉伯语

javascript - POST 表单到新窗口

javascript - 哪些视频播放器不需要文件格式转换?

html - 如何将 Logo 和标题对齐到页面的中心?

php - 我正在尝试在表中添加一个下拉菜单框,其中包含从 mysql 获取的数据

javascript - jquery 将 post 值发送到另一个页面并在当前页面加载。显示更多,显示更多按钮

javascript - php jquery 投票系统

javascript - 如何获得焦点元素 (<em>)?

html - 响应式表格 html,css

javascript - Javascript 里没有 LIKE 语句吗?