【问题标题】:TCPDF - superscript without HTMLTCPDF - 没有 HTML 的上标
【发布时间】:2016-12-28 16:18:40
【问题描述】:

我正在使用 TCPDF 创建 PDF 文档,并且需要在不使用 HTML 作为多单元格选项的情况下呈现上标字符。没有 HTML,因为我需要将单元格底部的单词垂直对齐,当单元格支持 HTML 时,这不起作用。

有什么想法吗?

[编辑]

根据 Jakuje 的提示,我正在使用此代码来转换 unicode 字符:

$unicodeTable = array('<sup>1</sup>'=>'U+00B9', '<sup>2</sup>'=>'U+00B2', '<sup>3</sup>'=>'U+00B3', '<sup>4</sup>'=>'U+2074', '<sup>5</sup>'=>'U+2075');

function replace_unicode_escape_sequence($match) {
    return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}

function unicode_chr ($chr) {
    $x = explode("+", $chr);
    $str = "\u".end($x);
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str);
}

foreach($unicodeTable as $uKey=>$uValue){
    $text = str_replace($uKey, unicode_chr($uValue), $text);
}

这适用于纯 php/HTML - 但是当我将此代码与 TCPDF 一起使用时,我得到的只是 unicode 代码(例如 \u00B9)

【问题讨论】:

    标签: tcpdf


    【解决方案1】:

    你可以使用UTF8 superscript,如果是一些“普通”的字母,比如

    x² or xⁿ
    

    【讨论】:

    • 我试过了。当我在作品中使用纯 HTML 进行操作时。不过,使用 TCPDF 我得到了 unicode 代码(如 \u00B9)。有关代码,请参阅我编辑的问题。
    【解决方案2】:

    我发现以下适用于 TCPDF 的作品

    json_decode('"\u00B3"') // for PHP 5.x
    
    "\u{00B2}" // for PHP 7.x
    

    基于这篇堆栈溢出文章Unicode character in PHP string

    TCPDF 6.2.13 with PHP7.1.4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2014-11-16
      • 2012-05-23
      • 1970-01-01
      • 2013-01-07
      • 2016-07-01
      • 1970-01-01
      相关资源
      最近更新 更多