ZendPdf — кодировка кириллических символов setTextField

Я применил это решение:

Как заполнить PDF форму в php

Петр Денев. Теперь я боролся с кодировкой текста для заполнения.

По сути, я читаю текст из параметра Post, и текст кириллический. Неважно, что я пытался изменить (я пытался изменить кодировки в Pdf.php ZendFramework, скопировав некоторые функции и применив его к setTextField и т. Д.), Ничего не работает. Это мой код:

$pdf = Zend_Pdf::load('reklam.pdf');
$pdf->setTextField("Text1", "Тест Инпут");
$pdf->setTextField("Text2", "Тест Инпут");
$pdf->setTextField("Text3", "Тест Инпут");
$pdf->save('outputfile.pdf');

Текст в выходном файле не является человеком.

Это модифицированный Pdf.php: http://pastebin.com/q7YqNcb9

Что делать? Пожалуйста помоги.

Заранее спасибо.

1

Решение

  1. Убедитесь, что ваш шрифт содержит необходимые символы. Очевидно, что для полей формы учитываются только параметры шрифта, заданные в свойствах поля формы Acrobat, это означает, что он не зависит от шрифта, установленного вами в Zend.
  2. Если да, это помогло мне:

    public function setTextField($name, $value)
    {
    if (!isset($this->_formFields[$name])) {
    throw new Zend_Pdf_Exception(
    "Field '$name' does not exist or is not a textfield");
    }
    
    /** @var Zend_Pdf_Element $field */
    $field = $this->_formFields[$name];
    $field->add(
    new Zend_Pdf_Element_Name('V'),
    // you must set $font to one of the Zend_Pdf_Resource_Font objects
    new Zend_Pdf_Element_String($font->encodeString($value, 'UTF-8'))
    );
    $field->touch();
    }
    
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]