Печать по русски из-под Linux.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение alexs » 21.02.2008 14:32:56

Всё верно. Это и есть проблема печати по русски
смотри файл postscriptcanvas.pas
там происходит принудительная установка шрифтов.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение AMD » 29.02.2008 12:49:56

И кстати разобрались с печатью по русски из по линукса?

Вот у меня такая ситуация
вывожу на принтер через Printer. и получается очень интересная ситуация

Когда даю на печать из программы комп входит в стопор тормозит ужасно
даю на печать всего одно слово из 5 букв
Печатается страница примерно через 2-3 минуты а комп продолжает ужасно тормозить пока не перезагружу XServer

Какие идеи есть могу выложить программу
http://linuxforum.ru/index.php?act=atta ... st&id=9744
http://linuxforum.ru/index.php?act=atta ... st&id=9745
AMD
постоялец
 
Сообщения: 189
Зарегистрирован: 23.01.2008 22:25:25
Откуда: Кишинев

Сообщение debi12345 » 29.02.2008 20:55:04

вывожу на принтер через Printer. и получается очень интересная ситуация

Кажется, нужно "close(lst)" вызывать в конце.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Печать по русски из-под Linux.

Сообщение sash-kan » 21.05.2008 15:15:18

вот накатал патчик. главное условие - текст, передаваемый на принтер, должен быть в utf-8.
патчится файл lcl/postscriptcanvas.pas.

чтобы обойти ограничения в 256 символов в postscript-овской таблице encodings, выводятся непосредственно имена glyph-ов.
командой glyphshow, а не show, как обычно.
выливается это в разрастание самой программы, в которой приходится хранить имена распространенных glyph-ов.
взяты эти имена, кстати, отсюда - http://www.adobe.com/devnet/opentype/ar ... phlist.txt

включается логика конструкцией
{$DEFINE PS_UNI}
убрав этот define, возвращаемся к обычной логике работы.

ах да, по ходу разборок выяснилась опечаточка (упоминается undefline вместо underline), выливающаяся в невозможность печати подчеркнутого текста.
тут в патче это учтено. как безусловная правка.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
sash-kan
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2008 13:22:48
Откуда: Санкт-Петербург

Re: Печать по русски из-под Linux.

Сообщение alexs » 27.05.2008 16:24:57

Патчик работает замечателно. Но есть одно но - ты не разбирался с именами шрифтов? В postscriptcanvas.pas всё безусловно приводится к 4-м шрифтам. Ты это ограничение не переделывал?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Печать по русски из-под Linux.

Сообщение sash-kan » 03.06.2008 18:27:02

alexs писал(а):В postscriptcanvas.pas всё безусловно приводится к 4-м шрифтам. Ты это ограничение не переделывал?
в этом файлике много чего "not implemented". увы, кроме вышеизложенного, я других правок не делал. задачи у меня другие...

кстати, кто-нибудь сможет протолкнуть этот патч разработчикам? я не владею английским в достаточной мере. а патч не только для славян полезен. насколько я понимаю, адобовцами тут большая часть популярных алфавитов учтена (которые в начале юникодной таблицы помещаются). если в шрифте глифы соответствующие имеются, то можно печатать хоть иврит, хоть грузинский, хоть кану...
Аватара пользователя
sash-kan
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2008 13:22:48
Откуда: Санкт-Петербург

Re: Печать по русски из-под Linux.

Сообщение alexs » 03.06.2008 18:42:04

У меня единственное НО - он ошибается с размерами шрифтов. Английские символы и цифры - размер верен, а вот русские - размер плавает (ASP Linux 12).
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Печать по русски из-под Linux.

Сообщение sash-kan » 04.06.2008 14:41:36

alexs писал(а):размер плавает
???
формируемый postscript содержит несанкционированные переназначения размера шрифта?
можно взглянуть на этот сформированный ps?
ну, и неплохо бы посмотреть на фрагмент картинки, которая отрисовывается этим ps-ом. или "размер плавает" только при печати на бумагу?
Аватара пользователя
sash-kan
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2008 13:22:48
Откуда: Санкт-Петербург

Re: Печать по русски из-под Linux.

Сообщение alexs » 04.06.2008 15:38:23

Личкой отправил файл.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Печать по русски из-под Linux.

Сообщение sash-kan » 04.06.2008 21:48:58

alexs писал(а):Личкой отправил файл.
посмотрел. как я и предполагал, ничего "военного" не увидел.
все вполне себе аккуратно.
код, собственно, и подтверждает. никаких "вкраплений" чего-либо постороннего. просто буквы выводятся:
Код: Выделить всё
/afii10018
/afii10074
/afii10066
/afii10077
/afii10074
/afii10080
/afii10084
/afii10070
/afii10076
/afii10065
/space
/afii10029
/afii10065
/afii10068
/afii10085
/afii10079
/afii10080
/afii10067
/afii10093
/afii10087

приложите, наверно, все-таки, кусочек экранного снимка, из которого было бы понятно, _что_ и _куда_ у Вас "плывет".
а то есть подозрение на Ваш gs | шрифт...

p.s. прилагаю снимок одной из надписей в Вашем файле. или я чего-то не вижу, или надпись вполне себе ровная.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
sash-kan
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2008 13:22:48
Откуда: Санкт-Петербург

Re: Печать по русски из-под Linux.

Сообщение v-t-l » 05.06.2008 12:05:21

Аналогично в Ubuntu 7.10 - латинские буквы значительно крупнее кириллицы при одинаковых настройках шрифта (LazReport на PDF-Printer)
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Печать по русски из-под Linux.

Сообщение sash-kan » 05.06.2008 19:50:17

2 alexs
дело, скорее, в разном понимании "размера шрифта" у экрана и postscript-а.
в разных единицах они его меряют, что ли...
но не в шрифте дело, это точно.
посмотрите в текст ps-файла. например, для надписи "Архив..." (/afii10017/afii10082/afii10087/afii10074/afii10067...) устанавливается размер шрифта 11 (строчкой выше: "...11 scalefont...").
и если такого размера (Font.Size=11) шрифт сделать, например, на форме в lazarus, то выглядят буквы там значительно крупнее...
может быть, в ps предусмотрен какой-нибудь scaling для размера шрифта. черт его знает. я так глубоко не вникал.

2 v-t-l
>латинские буквы значительно крупнее кириллицы
пожалуйста, выведите на печать (точнее, в ps-файл) одну строчку "ABCDEF АБВГДЕ".
что, неужели буквы получаются разной высоты? тогда загляните в сам файл:
латиница и кириллица выводятся одним куском, начинающимся с выбора шрифта, или разными кусками?

p.s. если совсем уж по-тупому, то в строчке
Write(Format('/%s findfont %d scalefont setfont',[MappedFontName,Font.Size]));
можно просто Font.Size на чего-нибудь домножить...
но это не поможет в случае, если существует таки эта паранормальная проблема "кириллица мельче, чем латиница". жду вестей от v-t-l

Добавлено спустя 9 минут 28 секунд:
о! мысль возникла! а что за шрифт выбирается у вас, alexs и v-t-l, в реальности?
просмотрите-ка вывод gs-а, когда он рендерит ваши ps-файлики:
$ gs some.ps
он там много чего интересного про шрифты может написать.
Аватара пользователя
sash-kan
незнакомец
 
Сообщения: 8
Зарегистрирован: 21.05.2008 13:22:48
Откуда: Санкт-Петербург

Re: Печать по русски из-под Linux.

Сообщение v-t-l » 06.06.2008 14:35:05

Похоже, это LazReport бредит. При прямом выводе на Canvas принтера - все красиво.
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Печать по русски из-под Linux.

Сообщение alexs » 06.06.2008 16:21:35

А какие шрифты ты используеш? и в какой кодировке?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Печать по русски из-под Linux.

Сообщение v-t-l » 09.06.2008 11:17:49

Serif, Sans, Times New Roman, Arial - Utf-8.

Добавлено спустя 6 минут 31 секунду:
LazReport печатает по-русски (в последних svn lazarus работает в utf8 по умолчанию), но бредит при вычислении размеров текста и зачем-то меняет размер шрифта при выводе на канву принтера (в дизайнере периодически выдает Invalid Floatig Point Operation).
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 268

Рейтинг@Mail.ru