Преобразование HTML в «красивый» текст для печати на принтере только с текстом (матрица точек) - PullRequest
3 голосов
/ 14 мая 2010

У меня есть веб-сайт, который генерирует некоторые простые табличные данные в виде HTML-таблиц, многие из моих пользователей печатают веб-страницу на лазерном / струйном принтере;однако некоторым нравится печатать на устаревших матричных принтерах (только текст) и в этом заключается проблема.

При передаче печати из веб-браузера на матричный принтер принтер фактически воспринимает данные как «графические»/ изображение и приступает к печати его точка за точкой.

т.е. при печати символа 'C' принтер разрезает его по горизонтали и печатает за 3-4 прохода.

Тот же принтер печатает текст из файла ASCII (скажем, из блокнота) в виде полных символовза один проход, что в 5 раз быстрее и намного тише, чем при печати веб-страницы.

(Даже пробовал «универсальный драйвер только для текста», но в Mozilla Firefox есть ошибка, связанная с тем, что он ничего не печатает поверхэтот конкретный драйвер начиная с версии 2.0 +)

Так есть ли какой-нибудь чистый способ форматирования уже сгенерированного HTML (скажем, метод принимает всю HTML-таблицу в виде строки) и генерирует соответствующий текстовый файл с правильно выровненными столбцами?

Я пытался удалить html-теги, но главная проблема заключается в том, чтобы выполнить хорошее «обертывание» данных ячейки и сохранить целостность данных других ячеек (из той же строки).

Например: ('| 'и' _ 'на самом деле не требуется)

Col1    |  Col2      |  Colum_Name3  |  Col4   |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
1       |  this cell | this column   | smaller |
        | is in three| spans 2 rows  |         |
        | rows       |               |         |
- - - - - - - - - - - - - - - - - - - - - - - - 
2       | smaller now| this also     | but this|
        |            |               | cell's  |
        |            |               | data is |
        |            |               | now     |
        |            |               | bigger  |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Не могли бы вы предложить предпочтительный подход?

Я думал об использовании xslt и somehow вывод текста (вместо более распространенного pdf), но рендерер текста Apache FOP действительно сломан и, возможно, забыт в процессе разработки.Коммерческие слишком дороги.

1 Ответ

1 голос
/ 14 мая 2010

Существуют текстовые браузеры, которые могут сделать это: например, Lynx: http://lynx.isc.org/ и Elinks: http://elinks.or.cz/

РЕДАКТИРОВАТЬ: Ой, Lynx не поддерживает таблицы, но Elinks поддерживает.

...