我有一个自定义 Gotham 字体,需要嵌入到 PDF 文档中。我已经用谷歌搜索并尝试了几种方法来做到这一点,但它不起作用。我试图让它在本地主机上与 CF11 和 Apache 2.2 服务器一起工作。
这是我拥有的代码
<!--- The HTML Page code --->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252" />
<meta name=Generator content="Microsoft Word 12 (filtered)" />
<style type="text/css">
@font-face
{
font-family: 'gothamthin';
src: url('../fonts/Gotham-Thin.otf');
}
</style>
</head>
<body>
<span style="font-size:22pt;font-family:'gothamthin'">13 First Street</span>
</body>
</html>
<!--- the PDF Generation Code --->
<cfdocument format="PDF" fontembed="yes" overwrite="true" filename="test.pdf">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252" />
<meta name=Generator content="Microsoft Word 12 (filtered)" />
<style type="text/css">
@font-face
{
font-family: "gothamthin";
src: url('../fonts/Gotham-Thin.otf');
}
</style>
</head>
<body>
<span style='font-size:22pt;font-family:"gothamthin"'>13 First Street</span>
<br/><br/>
<span>
<font face="gothamthin" size="22">
13 First Street with font tag
</font>
</span>
</body>
</html>
</cfdocument>
HTML 页面版本使用所需字体生成正确的输出。请看下面的截图:
然而,PDF 版本不使用自定义字体。
我在 Adobe Reader 中打开了 PDF 并检查了 Properties->Fonts 面板,它没有列出自定义字体。请看下面的截图:
我检查了 CF Admin 字体管理部分,它显示字体已正确安装,但与我在代码中提到的 1 位置不同。我在代码中提到的是<app-root>/fonts/*.otf
. 请看下面的截图:
另外,在上面的代码中,我使用了字体家族名称gothamthin。如果我用gotham-thin替换它(中间有一个连字符,与 CF Admin 中的字体名称相同),那么我会收到以下错误。我不确定这是否与任何事情有关,但这只是我认为我会分享的一个观察结果。
详细信息:此异常的原因是:coldfusion.document.spi.DocumentExportException:java.lang.NullPointerException。消息:执行文档处理时发生异常。