huziuk
@huziuk
Web Developer

Почему PDFtk не отображает кириллицу при заполнении PDF форм?

Мне нужно заполнять PDF формы данными с помощью PHP. Я использую библиотеку mikeheartl как обертку для PDFtk, но PDFtk не отображает мои данные на русском языке когда я отключаю редактирование файла с помощью функции flatten().

Как это можно исправить или обойти эту проблему. Вариант HTML to PDF не подходит.

Вот метод генерации файла:

private function generate($fields, $filename, $path)
    {
        $options = array(
            'command' => "C:\Program Files (x86)\PDFtk\bin\pdftk.exe",
            'useExec' => true,
        );

        $pdf = new Pdf($path, $options );
        $res = $pdf->fillForm($fields)
        ->flatten() // Отключает редактирование
        ->compress()
        ->needAppearances() 
        ->saveAs("./completed/" . $filename);

        if($res === false) {
            print_r($pdf->getError());
            return false;
        }

        return $filename;
    }
  • Вопрос задан
  • 189 просмотров
Пригласить эксперта
Ответы на вопрос 1
tomclancys
@tomclancys
1.
'encoding' => 'UTF-8', // option with argument

Попробуйте добавить это в вашу функцию или потом ещё заменить UTF-8 на WINDOWS-1251.

2.
'commandOptions' => array(
        'useExec' => true,      // Can help on Windows systems
        'procEnv' => array(
            // Check the output of 'locale -a' on your system to find supported languages
            'LANG' => 'en_US.utf-8',
        ),
    ),


Попробуйте язык поменять на ru_RU.utf-8 или ru_RU.win-1251 или ru_RU.windows-1251
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы