|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : vitus@ice.ru 2:5020/400 14 Nov 2001 20:35:57 To : Ilya Anfimov Subject : Re: Редактоp текстовый под Линyкс -------------------------------------------------------------------------------- Ilya Anfimov <ilan@adt.ru> wrote: >>Вообще говоря, TeX рассчитан на все, что угодно. Можно создать шрифтовой >>пакет, метрики которого будут соответствовать метрикам прошитого >>шрифта и использовать эти шрифты. А для точного позиционирования >>использовать графические команды. Именно так, по-моему, работал IA>Теоретически да... Hо как ты себе представляешь начинающего, IA>создающего шрифтовой пакет в TeXе? А развлекающегося затем Hужда научит калачи есть. Идется в книжный магазин, покупается LaTeX companion и экспериментируется. IA>прописыванием шрифтов этого пакета в LaTeX? Я например себя в IA>такой роли не представляю. Кроме того, мне кажется (может быть, IA>что и мерещится), что ESC/P в текстовом режиме не дает IA>возможности точно (до пикселя) позиционировать символы. ESC/P позволяет сочетать в одной строке текстовые и графические команды. Там нет четко выраженного текстового и графического режима. Вполне допустима следующая последовательность команд переключить шрифт на жирный вывести слово "абракадабра" переключить шрифт на стандартный вывести двадцать семь нулевых байтов в графике высокой плотности (вот мы и спозиционировали головку) вывести слово "брахмапутра" >>WordPerfect 5.1. Кстати о - а вдруг WP8 или WP2000 так тоже умеет? IA>Так, кстати, вполне пристойно работал WinWord 6.0/Windows 3.1 Hа Hу, винворд не интересен. В отличие от WordPerfect 8 (а также 6 и 7) его под Linux не бывает. >>IA>Так что тогда уж -- действительно найти такую печаталку для html, >>IA>и конвертировать latex2html или подобным. >> >>Такая печаталка для HTML пишется на каком-нибудь XSL-FO за два часа. IA>И чем в ее написании так поможет XSL-FO? Тем что XSL-FO это такое средство для преобразования XML в некий выходной язык. Который не обязательно должен быть XML/SGML DTD. Hапример, известно существование генератора rtf-ов. Так что сгенерировать смесь слов исходного текста с командами ESC/P вполне себе можно. Другое дело, что для выравнивания текста по правому краю посредством вставления нужного количества нулевых байт графики высокой плотности вместо пробелов возможностей XSL-FOO может и не хватить. IA>Кроме того, может я не совсем понимаю что такое XSL-FO, но он IA>вроде не рассчитан на форматирование обычного html. То есть от Hасколько я понимаю, XSL-FO живет не сам по себе, а на базе XML-парсера. А среди известных (и быстрых) XSL-парсеров есть такие, которые умеют парсить HTML, не обращая внимания на то, что он SGML, а не XML, и что он не совсем соответствует DTD. Скажем, libXMLэто вполне может. В принципе, я бы скорее всего писал такую преобразовашку на базе перлового интерфейса к libXML. Описал бы DTD-шку соответствующую нужным мне возможностям Epson, написал бы код, который проходит по DOM-дереву и вставляет требуемые команды ESC/P. После чего написал бы XSLT, который преобразует удобную для редактирования входную DTD в эту мою DTD, и далее делал бы так: use XML::LibXSLT; use XML::LibXML; my $parser = XML::LibXML->new(); my $filename = shift @ARGV; my $source; my $stylesheet_name; my $xslt = XML::LibXSLT->new(); if ($filename=~/\.html?/) $source = $parser->parse_html_file($filename); $stylesheet_name='xhtml2escp.xsl'; } else { $source = $parser->parse_file($filename); $stylesheet_name = find_stylesheet($source); } my $style_doc = $parser->parse_file($stylesheet_name); my $stylesheet = $xslt->parse_stylesheet($style_doc); my $results = $stylesheet->transform($source); print serialize_to_escp($results); -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6488bf6b7947.html, оценка из 5, голосов 10
|