![]() |
печать txt файла
нужно решить задачу печати файла в DOS кодировке на принтер.
на печать файл отправляется через Copy %File% LPT1 в первой строке у файла идет ESC последовательность для принтера, но проблема состоит в том, что Длинные строчки не переносятся, а просто обрезаются при печати. Уменьшение размера шрифта через ESC последовательность тоже уже дошло до разумного предела. использовать для печати Notepad /P %File% не вариант. Может ктото разбирается в ESC последовательностях для принтеров HP или знает удобную программу для консольной печати? |
т.е. текстовый файл в дос-кодировке надо отправить на печать на лазерный принтер?
|
если быть точнее, то как отправить файл на печать Так, чтобы длинные строки переносились, а не обрезались.
|
прога была DOSPRN кажеться. поищи, если найду выложу.
п.с. а не проще сразу TXT нормальный делать? |
Уважаемый, проблема не в выводе на печать в DOS-WIN кодировке, а в Печати на принтер через консоль.
На сколько я помню DosPrint не умеет работать через командную строку. |
Loki3D, ESC - это Epson, HP - это PCL... допустим последнее, 20cpi достаточно?
Код:
E(s20H&l1O&l16D |
amel27,
все равно задача не решается. Даже при альбомной ориентации листа, которая задается командой &l1O, строка обрезается. Обрезается потому, что очень длинная, а мельчить с размером шрифта уже некуда. и да. у HP это называется PCL команды. А распространенное называние ESC (Эскейп) еще от того, что перед командой вызывается нажатие клавиши Esc ASCII код 27. ну это так. :) |
Цитата:
Код:
{Esc}E Сброс |
длина строки в txt файле
в реальном файле она составляет 305 символов. но вот для примера, чтобы было понятно чего я хочу добиться приведу такую строку Код:
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 если печатать в албомной ориентации с размером шрифта 20cpi то влезет 226 символов при портретной ориентации влезает 160. всё остальное просто обрезается. Если печатать из notepad то на выходе я получаю всю строку целиком, за счет того, что проиходит перенос. Вот я и интересуюсь, Есть ли какая то команда для принтера, которая заставит его перенести остальные символы в строке на новую, вместо того чтобы их просто не печатать. я просмотрел команды в справочнике по PCL 5, разное перепробовал, но желаемого не добился. Вот думаю,либо я чтото упустил, либо это впринципе не возможно при использовании ESC последовательности. Печатать надо обязательно портретно и не Очень мелко. |
а если печатать при помощи Dosprn
http://russian.dosprn.com/ |
Baw17, если не ошибаюсь DosPrint не работает консольно
|
Цитата:
|
Baw17, точно.. , но я имел ввиду DOSPRN
|
Цитата:
Код:
TYPE FILE.TXT|AutoCRLF 160 >PRN |
Вложений: 1
продолжая ход мысли... Сваять прогу-фильтр несложно, но тогда возникнет другая проблема: если файл содержит PCL-команды, форматирование текста нарушится, а именно - длина строки будет короче на длину PCL-команды. Учет в проге всех PCL-команд довольно муторное занятие, поэтому лучше посылать PCL-команды отдельно от файла.
прилагаю свой вариант такой утилиты... я не программер, пусть спецы поправят если что... =) Код:
#include <stdlib.h> Код:
<%FILE% AutoCRLF 60 >LPT1 |
amel27,
Да, в итоге написал программу |
Время: 02:25. |
Время: 02:25.
© OSzone.net 2001-