首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PHP将表情符号导出到PDF文档?

如何使用PHP将表情符号导出到PDF文档?
EN

Stack Overflow用户
提问于 2022-10-02 17:54:15
回答 1查看 105关注 0票数 0

我试图使用FPDF和TCPDF php库导出到PDF。我发现像❤️这样的表情符号没有转换。只有️️一些矩形框在那里生成的pdf。我也尝试了tfpdf。

代码语言:javascript
运行
复制
    $text = "There is my text  ,  and emojis  ❤️ ";
    require('tfpdf/tfpdf.php');
        
    $pdf = new tFPDF();
    $pdf->AddPage();
        
    //Add a Unicode font (uses UTF-8)
    $pdf->AddFont('Segoe UI Symbol','','seguisym.ttf',true); // DejaVuSans.ttf
    $pdf->SetFont('Segoe UI Symbol','',12);
    $pdf->Write(8,$text);
    $pdf->Output();

我也尝试过不同的字体。但对我不起作用。有人能在这方面帮助我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-27 13:53:11

遗憾的是,fPDF、TCPDF或tFPDF无法打印这些字符。问题是,这些字符不是BMP的一部分,它们用代理项对表示,这意味着它们的行为就像UTF-16中的多个字符(因为一个表情符号被打印为2个矩形框,而不是一个),而且它们的代码点在65535以上。然而,所有提到的PDF库都依赖于<= 65535的码点索引以及读取TTF文件的TFontFile类。

您还需要添加具有完整Unicode字符集集或至少是表情符号集的TTF文件。大多数字体都没有。这给PDF库带来了另一个问题,它可能需要支持回退字体,当主字体中找不到代码点时(例如,您希望在Gotham中打印文本,但由于不包括表情符号,请为它们使用其他字体)。顺便说一下,例如,表情符号字体"Noto Color Emoji“有23 MB的TTF文件。所以它很容易变大。

无论如何,上面的所有内容都可以添加到PDF库中,但这需要付出一定的努力。我计划有时也为了我的需要去做。我想大概需要一天的时间。

另外,您可能会尝试一些更健壮的东西,比如mPDF,但是这个库非常庞大,速度慢,需要完全重写您的fPDF代码。也不能保证它也能打印表情。

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

https://stackoverflow.com/questions/73928113

复制
相关文章

相似问题

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