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

How to set the encode in PhpSpreadsheet\Reader\Xlsx?

我想用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);

您可以在文件 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);

问题已解决。 首先,我下载 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;