Проблема с кодировкой CP1251 в html2pdf

#php #pdf-generation #html2pdf #cp1251

#php #генерация pdf #html2pdf #cp1251

Вопрос:

Я загрузил и настроил скрипт с: http://www.html2pdf.fr / ru Он отлично работает с кодировкой по умолчанию, но когда я пытаюсь сгенерировать документы с символами в CP-1251, я получаю пробелы вместо символов. Также все мои файлы в CP-1251, данные в базе в CP-1251 и, как вы можете видеть, я использую простой шрифт -Arial

Пожалуйста, может быть, существует какое-то решение, чтобы заставить его работать.

P / s извините за мой английский

     ob_start();

include(dirname(__FILE__).'/res/exemple00.php');

$content = ob_get_clean();

require_once(dirname(__FILE__).'/../html2pdf.class.php');

try

{

    $html2pdf = new HTML2PDF('P','A4','fr');

    $html2pdf->setDefaultFont('Arial');

    $html2pdf->writeHTML($content, isset($_GET['vuehtml']));

    $content1=$html2pdf->Output('', 'S');
  

// Немного кода php

     $db->query("set names cp1251");

$query="SELECT data from files Where id=$file_id ";

$result=$db->query($query);

    $row=$result->fetch_assoc();

$content=($row['data']);
  

заголовок(‘Content-Type: application/pdf’);

заголовок («Content-Length: «.strlen(содержимое));

заголовок(‘Content-Disposition: вложение; filename=Invoice#’.$invoice_id.’.pdf’);

вывести $content;

 }

catch(HTML2PDF_exception $e) { echo $e; }    enter code here
  

Ответ №1:

Я не использую эту библиотеку, но вы устанавливаете свою кодировку в конструкторе HTML2PDF?

     $html2pdf = new HTML2PDF('P','A4','fr', true, 'CP-1251');
  

Если это не сработает, попробуйте ‘cp1251’ или ‘CP1251’, я не нахожу списка распознанных кодировок в документации. Вы также можете использовать iconv и преобразовать в UTF-8, поскольку это, похоже, используется по умолчанию.

Комментарии:

1. Я получаю следующее: html_entity_decode() [function.html-entity-decode]: charset CP-1251' not supported, assuming iso-8859-1 in /var/www/myproject/parsingHTML.class.php on line 203 Когда я пытаюсь «CP1251» или «cp1251» и т.д. — это снова пробелы вместо символов. Кроме того, я пытался использовать кодировку UTF-8 и функцию iconv, в этом случае я получаю сообщение от Acrobat Reader «Документ PDF поврежден». В любом случае спасибо за ответ.