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