如何设置 PhpSpreadsheet\Reader\Xlsx 中的编码?

发布于 2025-01-19 12:54:27 字数 428 浏览 4 评论 0原文

我想使用phpspreadsheet将XLSX转换为PDF,它成功了。 但是XLSX中的中文单词是错误。 找不到setInputenCoding方法。 我能做些什么?请给我指南

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load($public['root'].'/' . $fileName);
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf');
$pdfName = str_replace($extension, 'pdf', $fileName);
$writer->save($public['root'].'/' . $pdfName);

I want to use PhpSpreadsheet convert xlsx to pdf, it's succeed.
But the Chinese word in xlsx is error.
And the setInputEncoding method is not found.
What can I do? please give me guide

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load($public['root'].'/' . $fileName);
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf');
$pdfName = str_replace($extension, 'pdf', $fileName);
$writer->save($public['root'].'/' . $pdfName);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖树树初阳… 2025-01-26 12:54:27

您可以在 xlsx 文件中设置字体系列。

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load($public['root'].'/' . $fileName);

$styleArray = array(
    'font'  => array(
        'name'  => 'Verdana' // change your font
    ));

$spreadsheet->getDefaultStyle()->applyFromArray($styleArray);

You can set Font Family in file xlsx.

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
$spreadsheet = $reader->load($public['root'].'/' . $fileName);

$styleArray = array(
    'font'  => array(
        'name'  => 'Verdana' // change your font
    ));

$spreadsheet->getDefaultStyle()->applyFromArray($styleArray);
允世 2025-01-26 12:54:27
  • 首先,我下载了yahei.ttf,然后将其放在mpdf/ttfonts

  • 然后在mpdf/src/config/fontvariables.php中注册它。

  • 最后,在phpspreadsheet/writer/pdf/mypdf.php上找到第41行,然后更改代码:

      $ pdf = $ this-> createexternalWriterInstance(
        array_merge($ config,['default_font'=>'yahei'])
    );
    $ pdf-> setDisplayMode('fullPage');
    $ pdf-> useadobecjk = true;
    $ pdf-> autoScriptTolang = true;
    $ pdf-> autolangtofont = true;
     
  • First, I downloaded the yahei.ttf and put it to mpdf/ttfonts.

  • Then registered it in mpdf/src/Config/FontVariables.php.

  • Finally, find the line 41 at PhpSpreadsheet/Writer/Pdf/Mypdf.php and change the code like this:

    $pdf = $this->createExternalWriterInstance(
        array_merge($config, ['default_font' => 'yahei'])
    );
    $pdf->setDisplayMode('fullpage');
    $pdf-> useAdobeCJK = TRUE;
    $pdf->autoScriptToLang = true;
    $pdf-> autoLangToFont = true;
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文