Как использовать расширенные символы ASCII в документе PHP / PDF, сгенерированном FPDF?

Я пытаюсь создать документ, который содержит расширенные символы ASCII. Для текста, поступающего от клиента, работает следующее:

// Convert from UTF-8 to ISO-8859-1 - Deal with Spanish characters
setlocale(LC_ALL, 'en_US.UTF-8');
foreach ($_POST as $key => $value){
$post[$key] = iconv("UTF-8", "ISO-8859-1", $value);
}

$pdf->Cell(0, 0, $post["Name"], 0, 1);

Тем не менее, я не могу заставить текст в файле PHP работать. Например:

$name = "José";

Я не знаю, какую кодировку использует переменная. В результате я не могу преобразовать это в ISO-8859-1. Это искажается.

Редактировать:
Я переписываю программу, которая генерирует документы PDF (некоторые на испанском языке). Если я копирую текст из существующих PDF-файлов, я получаю следующее: (что выглядит нормально в документе PDF и в IDE, но не может быть напечатано с использованием FPDF с использованием шрифтов CP1252 или ISO-8859-1).

$Name = "José" // Jos\x65\xcc\x81 - I have no idea what encoding is used for the é

Изменение расширенных символов на UTF-8 решает проблему:

$Name = "José" // Jos\xC3\xA9  - UTF-8
  1. Кто-нибудь знает, какую кодировку я копирую из существующих PDF-файлов?
  2. Есть ли способ конвертировать его в UTF-8?
  3. Могут ли пользователи вводить этот материал в браузер?

Когда я преобразую символы в кодировке UTF-8 в ISO-8859-1 для вывода в FPDF, PDF-файл содержит трехсимвольную версию символа é.

2-е редактирование: Эквивалентность Unicode из Википедии

Unicode предоставляет два понятия, каноническая эквивалентность и
совместимость. Последовательности кодовых точек, которые определены как канонические
предполагается, что эквивалентные имеют одинаковый внешний вид и значение, когда
напечатано или показано. Например, кодовая точка U + 006E (лат.
строчная буква «n»), за которой следует U + 0303 (тильда объединения «◌̃»)
определяется Unicode как канонически эквивалентный одному коду
точка U + 00F1 (строчная буква «ñ» испанского алфавита).
Поэтому эти последовательности должны отображаться одинаково,
должны быть одинаково обработаны такими приложениями, как
алфавитные имена или поиск, и могут быть заменены для каждого
Другой.

Это долгий путь перефразирования комментария @ smith, что мне просто нужно получить TCPDF или что-то, что будет правильно обрабатывать UTF-8. Следует отметить, что я получаю сообщение об ошибке в PHP iconv, поэтому я не совсем уверен, что его можно устранить, переключившись на TCPDF.

0

Решение

Задача ещё не решена.

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

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

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