Почему TCPDF показывает?вместо Č при преобразовании текста из файла слова - PullRequest
0 голосов
/ 19 января 2019

У меня есть файл 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);

}
...