找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 7|回复: 0

修复WHMCS账单PDF不可显示中文的问题

[复制链接]

3

主题

49

回帖

619

积分

高级会员

积分
619
发表于 2023-8-14 06:01:11 | 显示全部楼层 |阅读模式
本帖最后由 VMISS 于 2023-8-14 06:02 编辑

问题原因: WHMCS 使用开源项目 TCPDF 来生成 PDF 文件,但该项目本身并不支持中文字符因为缺少相关中文字体。

解决办法:

  • 下载字体文件:https://drive.google.com/file/d/1jpDY0C3YnTVV4Sq-hqHzSdnHa0rOW8xe/view?usp=sharing
  • 上传3个字体文件至 whmcs 相关目录之下:/vendor/tecnickcom/tcpdf/fonts/
  • 到WHMCS后台:Configuration () > System Settings > General Settings (WHMCS 8.0之前版本, Setup > General Settings). 选择 Invoices 选项栏。
  • PDF Font Family 选项中选择Custom并填入 droidsansfallback



    对文件不放心的可自己制作相关PHP字体文件:

  • 首先下载ttf字体文件: https://github.com/aosp-mirror/platform_frameworks_base/blob/de0fe2daafb769cc37ca922ffef6dbafb8c6cae2/data/fonts/DroidSansFallbackFull.ttf
    注意这里得下载DroidSansFallbackFull 而不是 DroidSansFallback,因为本人实测直接使用DroidSansFallback.ttf制作的字体反而无法/正常显示英文。
  • 更换文件名 DroidSansFallbackFull.ttf 为 DroidSansFallback.ttf
  • 下载TCPDF项目并上传至装有PHP的linux服务器当中:https://github.com/tecnickcom/tcpdf
  • 把DroidSansFallback.ttf字体放入fonts文件夹,并随便创立一个 a.php 文件:
    代码在附带的图片当中,因论坛限制,我无法直接插入



    20230813175946.png
    (37.08 KB, 下载次数: 0)

    半小时前 上传
    点击文件名下载附件

  • 用php a.php 执行, 或者直接网页中打开 a.php 网页开始转档,转好之后会在fonts里面产生三个档案:droidsansfallback.php、droidsansfallback.ctg.z、droidsansfallback.z




    References:

    https://whmcs.community/topic/273009-pdf-invoice-version-is-broken/

    https://charles4code.blogspot.com/2018/09/few-notes-about-tcpdf-open-source-php.html

    https://3wa.tw/mypaper/?uid=shadow&mode=view&id=1793

    https://docs.whmcs.com/PDF_Invoice_Customisation
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-11-15 07:13 , Processed in 0.043650 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表