У меня есть файл docx с некоторыми хорватскими буквами (č, ć, đ, š, ž) и я хочу преобразовать его в pdf, используя библиотеку PHPWord с TCPDF. Файл результатов распознает š и ž, но для других есть только?.
Я пытался изменить шрифты и кодировку, но безуспешно.
Вот мой код для конвертации:
require_once 'vendor\autoload.php';
require_once 'vendor\phpoffice\phpword\bootstrap.php';
include_once 'tcpdf/tcpdf.php';
include_once 'tcpdf/examples/lang/hrv.php';
\PhpOffice\PhpWord\Settings::setPdfRendererPath('tcpdf');
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
$striped_content = '';
$content = '';
$temp = \PhpOffice\PhpWord\IOFactory::load("helloWorld.docx");
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($temp , 'PDF');
$xmlWriter->save('test.pdf',FALSE);
А мой tcpdf.php выглядит так:
public function save($filename = null)
{
$fileHandle = parent::prepareForSave($filename);
// PDF settings
$paperSize = 'A4';
$orientation = 'P';
// Create PDF
$pdf = new \TCPDF($orientation, 'pt', $paperSize, true, 'UTF-8', false);
// set some language dependent data:
$lg = Array();
$lg['a_meta_charset'] = 'UTF-8';
$lg['a_meta_dir'] = 'ltr';
$lg['a_meta_language'] = 'hr';
$lg['w_page'] = 'page';
// set some language-dependent strings (optional)
$pdf->setLanguageArray($lg);
$pdf->setFontSubsetting(false);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetFont('freeserif', '', 11, '', true);
$pdf->AddPage();
// $pdf->SetFont($this->getFont());
$pdf->writeHTML($this->getContent());
// Write document properties
$phpWord = $this->getPhpWord();
$docProps = $phpWord->getDocInfo();
$pdf->SetTitle($docProps->getTitle());
$pdf->SetAuthor($docProps->getCreator());
$pdf->SetSubject($docProps->getSubject());
$pdf->SetKeywords($docProps->getKeywords());
$pdf->SetCreator($docProps->getCreator());
// Write to file
fwrite($fileHandle, $pdf->Output($filename, 'S'));
parent::restoreStateAfterSave($fileHandle);
}