我想将心形表情符号、礼物表情符号和笑脸表情符号添加到 pdf 文件中。这里我使用了FPDF库。
$pdf->AddFont('NotoEmoji', '', 'NotoEmoji-Regular.ttf');
$pdf->SetFont('NotoEmoji', '', 12);
// insert emojis
$pdf->MultiCell(10, '❤️ ', 0, 'L'); // Heart emoji
$pdf->MultiCell(10, '😊', 0, 'L'); // smily emoji
但是上面的方法不起作用。谁能帮我解决这个问题吗?
PDF 组件不支持嵌入超过 2 种颜色的字体
因此需要一种解决方法来支持 HTML 或 SVG 彩色字体。
此类字体通常与底层操作系统相关,因此我们可以有 Android、Apple 或 Windows 变体。
对于 NotoColorEmoji
“NotoColorEmoji 使用 CBDT/CBLC 颜色字体格式,Android 和 Chrome/Chromium 操作系统均支持该格式。Windows 从 Chrome 和 Edge 中的 Windows 10 周年更新开始支持它。在 macOS 上,只有 Chrome 支持它,”
HTML 浏览器编辑器所做的就是编写单色符号并使用 PNG 图像导入进行覆盖(PDF 也不使用原始 PNG,而是使用修改后的 RGB 和灰色覆盖图像对)
因此,在 PDF 中我们将找到 2 声调符号和 2 个其他对象。
此页面上的❤️被视为“Arial”?因为这是底层的默认符号,但实际上,自从在 Windows 上的 Edge 中生成以来,PDF 包含
Segoe UI Emoji
17 0 obj
<</CapHeight 1434/Flags 4/FontFamily(Segoe UI Emoji)/FontName/FAAAAA+SegoeUIEmoji/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 109/Type/FontDescriptor/XHeight 1024>>
endobj