powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / tcpdf и кириллица
15 сообщений из 15, страница 1 из 1
tcpdf и кириллица
    #35961576
elpmis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите настроить шрифты для работы с tcpdf. Всё делал как в readme из папки fonts/utils. Не помогает.
Для fpdf подобное сработало. Но мне нужен tcpdf.
Спасибо.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #35962655
elpmis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не сталкивался с этим? Я весь инет перерыл, но ничего не нашёл. Говорят юникод, а толку нет.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #35967113
elpmis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче не ясно.
Но если текст в кодировке UTF-8 и прописать $pdf->SetFont('dejavusans', '', 10); то русские буквы есть.
Вдруг кому пригодится...
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #35968631
elpmis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё же смог сделать поддержку кириллицы.
С помощью стандартных системных шрифтов, утилиты ttf2ufm.exe и пары строчек кода
Код: plaintext
1.
require('makefont.php'); 
MakeFont('times.ttf','times.ufm',true,'cp1251');  
И всё.
Всем спасибо.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #35986063
VitaminChik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
elpmis,
я мучаюсь с этим уже третий день.
Я так понял, что Вы побороли проблемму.
Прошу Вас прислать мне пример скрипта и шрифты, origamiv@mail.ru
а то я уже все перепробовал, никак не могу найти решение проблеммы.

Заранее благодарен,
Вениамин.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #35987286
elpmis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VitaminChik,

Шрифты отправил. Странно, почему у вас не получилось. Я кажется всё описал. И работа с утилитами конвертации там подробно описана. Ещё нужно не забывать, чтобы текст был в кодировке UTF-8.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #36003133
Hemuli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А Вы не могли бы и со мной поделиться опытом, пожалуйста?
Алгоритм моих действий был таков (у меня Денвер, а версия tcpdf от 18.05.09):
1. берется файл *.ttf с именем в нижнем регистре с правильным синтаксисом (если был полужирного начертания, то переименовывается в *b.ttf и т.д.) и копируется в папку Fonts
2. в командной строке пишется:
"C:\WebServers\home\localhost\www\tcpdf\fonts\utils\ttf2ufm" -a -F "C:\WebServers\home\localhost\www\Fonts\arialuni.ttf"
после чего появляются в папке Fonts 3 файла: *.ufm, *.afm, *.t1a.
В этой же папке лежит рнр-скрипт, состоящий из:
<?php
require('C:\WebServers\home\localhost\www\tcpdf\fonts\utils\makefont.php');
MakeFont('*.ttf', '*.ufm', true, 'cp1251');
?>
3. запускается рнр-скрипт и в папке Fonts появляются ещё 3 файла: *.php, *.z и *.ctg.z.
4. все три файла вместе с *.ufm копируются в папку шрифтов сайта (так как все рассматривалось на примере стандартных примеров, складывалось все в директорию C:\WebServers\home\localhost\www\tcpdf\fonts и уже потом запускался скрипт C:\WebServers\home\localhost\www\tcpdf\examples\example_001.php - в нем вставлено название шрифта, как и в файле C:\WebServers\home\localhost\www\tcpdf\config\tcp_config.php строчки с
define ('PDF_FONT_NAME_MAIN', 'arial');
define ('PDF_FONT_NAME_DATA', 'arial'); на всякий случай).
Проверка такая: в cell вписываю фразу на русском (рядом с английскими буквами и цифрами). Русские буквы не отражаются - кирпичи показывает.
Но, если вставить текст в кодировке UTF-8 (откопала в директории cache в стандартном пакете), то срабатывает и без лишних телодвижений с шрифтами...
Неужели нельзя передавать в pdf текст в кодировках koi8-r или cp1251? Если нет, то как тогда можно получить текст в кодировке UTF-8... Помогите неумехе, пожалуйста!
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #36004238
Eraser_stp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hemuli,
Код: plaintext
$html = iconv("windows-1251","utf-8", $html);
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
tcpdf и кириллица
    #36921559
TSpider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А есть ли информация, в частности как бороться с исчезновением украинских букв ? Все остальные русские буквы отображаются великолепно.
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #36966701
AndrewInc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ни у кого не возникала проблема с буквой "Ё" при перекодировании её в UTF-8 и вывод в PDF с помощью этой библиотеки.
Пробовал как указывали.
Eraser_stpHemuli,
Код: plaintext
$html = iconv("windows-1251","utf-8", $html);

Но вместо "Ёмкость аккумелятора" вижу в PDF " мкость аккумулятора".

Ещё, проблема сходная. Строка
Код: plaintext
"95 × 57 × 25"
перекодируется в UTF-8 вроде нормально, но в PDF видеть
Код: plaintext
"95 × 57 × 25"
без &...; казалось бы надо:
Код: plaintext
1.
$utf8 =  html_entity_decode (  iconv ("windows-1251","utf-8", "95 × 57 × 25"),  ENT_COMPAT , 'UTF-8');
но в PDF попадает
Код: plaintext
"95   57   25"
уже пробовал iconv("windows-1251","utf-8//IGNORE", ..
или iconv("windows-1251","utf-8//TRANSLIT", ...
как пишут http://ru.php.net/manual/en/function.iconv.php
думал в конвертации проблема, но результат тот же.
Шрифт arialbd или arial... не играет роли.
Делал по примеру http://i-novice.net/generiruem-pdf-s-pomoshhyu-tcpdf/

Может кто знает в чём дело?
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #36995765
AndrewPDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndrewInc,

Аналогичная проблема с № и Ё при использовании шрифта из винды arial.ttf

Все дело в шрифте!!!

бери от сюда шрифт
http://www.azfonts.ru/load_font/aricyr.html

У меня появились № и Ё
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #36995770
AndrewPDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для ускорения процесса создания ПДФ можно закешировать шрифты

http://www.bitrealm.net/2010/08/tcpdf-is-slow-here-is-the-solution/

in tcpdf.php replace:
Код: plaintext
1.
$font = $this->_getTrueTypeFontSubset($font, $subsetchars);
with this code:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// Alcal: $font2cache modification
// This modification creates utf- 8  fonts only the first time,
// after that it uses cache file which dramatically reduces execution time
if (!file_exists($fontfile.'.cached')){
// calculate $font first time
$subsetchars = array_fill( 0 ,  512 , true); // fill subset for all chars  0 - 512 
$font = $this->_getTrueTypeFontSubset($font, $subsetchars); // this part is actually slow!
// and then save $font to file for further use
$fp=fopen($fontfile.'.cached','w');
$flat_array = serialize($font); //
fwrite($fp,$flat_array);
fclose($fp);
}
else {
// cache file exist, load file
$fp=fopen($fontfile.'.cached','r');
$flat_array = fread($fp,filesize($fontfile.'.cached'));
fclose($fp);
$font = unserialize($flat_array);
}
Модератор: AndrewPDF, не забываем использовать тег SRC для выделения кода!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
tcpdf и кириллица
    #39623627
ZardoZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из коробки не завелись русские шрифты
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    
require_once('lib/pdf/tcpdf.php');

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', true);


$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();

$pdf->SetFont('dejavusans', '', 10);

$text = 'Тест русский';
$text = iconv('windows-1251', 'UTF-8', "Привет");
$pdf->Write($text, 0, 'C', true, 0, false, false, 0);

$pdf->Ln();

$pdf->Write('Тест русский', 0, 'C', true, 0, false, false, 0);

$pdf->Output('smpl.pdf', 'I');



В результате имею в pdf документе 2 черных строки.

Английский нормально отображается. Версия последняя с git-hub.
Что можно сделать?
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #39623628
ZardoZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл в UTF-8 кодировке
...
Рейтинг: 0 / 0
tcpdf и кириллица
    #39623633
ZardoZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем параметры для Write в примерах были какими-то бредовыми и я порывшись в исходниках просто убрал их все за ненадобностью.
Так нормально работает

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
require_once('lib/pdf/tcpdf.php');

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', true);


$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();

$pdf->SetFont('dejavusans', '', 10);

$text = 'Тест русский';
$pdf->Write(null, $text);

$pdf->Ln();

$pdf->Write(null, 'Тест русский');

$pdf->Output('smpl.pdf', 'I');
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / tcpdf и кириллица
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]