| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Windows > Текстовый поток на принтер |
| Автор: ИгнатьевАлексей 5.9.2006, 10:53 |
| Господа! Есть у меня закрытая служебная программка, которая отправляет текстовые строки на матричный принтер. Принтер сломался и есть острая необходимость сохранять эти данные в текстовом файле, например. Подскажите, как это возможно сделать, т.е. может программки кикие-нибудь есть, или самому программировать надобно? Прошу прощения, если в Заранее благодарен! |
| Автор: Snowy 5.9.2006, 10:59 |
| В настройках принтера выбрать "Печатать в файл". |
| Автор: ИгнатьевАлексей 5.9.2006, 12:13 |
| Спавибо! А ты не мог бы подсказать, где в настройках принтера это сидит?..... У меня XP, и мне что-то не найти |
| Автор: Snowy 5.9.2006, 12:23 |
| Открывай свойства принтера. Закладка "Порты" Вместо текущего LPT порта, выбери "FILE: Печатать в файл". |
| Автор: ИгнатьевАлексей 5.9.2006, 12:34 |
| Спасибо! А как теперь с этим файлом работать? Он полон каких то непонятных символов вместо нужного текста |
| Автор: Snowy 5.9.2006, 13:33 |
| Там коды принтера. Если непонятные символы, значит у тебя не просто текст, а его графическая интерпритация. С ней работать может только принтер. Значит пока откладывай файлы. Как появится принтер или найдётся аналогичный, можно будет эти файлы распечатать. copy myfile.prn LPT1: или на принтер по умолчанию: copy myfile.prn PRN: читать их невозможно, т.к. это управляющие коды принтера и зависят от драйвера принтера. Читать их может только принтер этой или совместимой модели. |
| Автор: ИгнатьевАлексей 5.9.2006, 13:41 |
| Жаль, но мне это не подходит. В том то и задача моя, чтобы без принтера обойтись, а вместо него печатать эти строки в текстовый файл. Причем они автоматически и непрерывно идут на этот принтер. |
| Автор: Snowy 5.9.2006, 14:40 |
| Если бы это были текстовые строки, то в файл они бы так и падали, как текстовые. А, раз они падают в кодах, значит текст идёт в графике. А графику можно максимум скинуть в файлы-картинки - одна страница - один файл. Для этого нужно ставить эмулятор принтера. Добавлено @ 14:43 Да, кстати, наиболее напрашивающийся эмулятор идёт в комплекте с Adobe Acrobat (не reader). Там даже удобнее - всё, что печатается, превращается в PDF документ. Добавлено @ 14:46 А, вспомнил. Чтобы печатать только текст, есть способ. Панель управления - принтеры - установить новый Выбери локальный принтер Порт выбери FILE: Модель: Generic / Text Only Будет тебе чистый текст. Добавлено @ 14:47 Щас проверил - эта страница ушла в файл чистым текстом. Добавлено @ 14:51 Да, не забудь в настройках принтера выбрать шрифт 1251, а то он по умолчанию европейский ставит. |
| Автор: ИгнатьевАлексей 5.9.2006, 15:43 |
| Спасибо, но у меня не чистый текст. Пытался напечатать строку из блокнота и получил еще кубики впридачу. Но тем не менее, это уже ближе к моей задачке. Еще вопросик - а возможно избежать диалогового окна при этом? |
| Автор: Snowy 5.9.2006, 16:44 |
| Ну абсолютно чистый текст это вряд ли. Программы пытаются слать ещё всякую муть, акромя него. Но ведь никто и не говорил, что на выходе будет типографский документ От диалогового окна избавиться никак. Не заложен в винду механизм автоприсваивания имён файлов Хотя это очевидно напрашивается... Добавлено @ 16:45 Это не кубики. Это Enter'ы. (CR/LF - #13#10). |
| Автор: dumb 5.9.2006, 16:51 |
как. заходим в свойства принтера, вкладка Ports. там жмем на кнопку "Добавить порт..." - Local Port, в "имя порта" вводим полное имя файла, куда будет идти печать. |
| Автор: Snowy 5.9.2006, 16:57 |
| ХМ. Нашёл способ избавиться от запроса имени файла. Создаём новый порт - TCP/IP, имя localhost. По дефолту получаем localhost:9100 Настраиваем очередь печати - начинать печатать после помещения в очередь всего задания. На любом языке программирования пишем элементарный сервер - слушает порт 9100, при коннекте забирает все данные и кидает куда захочешь. На дельфи я накликал такой за 2 минуты. Добавлено @ 16:57 dumb, пока я кликал сервер, да писал ответ, ты уже успел Добавлено @ 17:00 ЗЫ. Но в таком варианте всё будет сыпаться в один файл. Через TCP сложнее, но управление именованием файлов - какое пожелаешь... |
| Автор: ИгнатьевАлексей 5.9.2006, 18:06 |
| Snowy, огромное спасибо! Буду разбираться как твою мысль осуществить!!! |
| Автор: ИгнатьевАлексей 6.9.2006, 08:31 |
| Snowy, подскажи, пожалуйста. В графе Printer Name or IP Address я могу вводить любое имя. Правильно я понял? И где теперь просмотреть можно созданный порт? Не могу найти.... |
| Автор: ИгнатьевАлексей 6.9.2006, 10:30 | ||
А если я в списке доступных портов не вижу созданного порта? Но порт сам создался, т.к. повторно порт с этим именем Винда не дает создать. |
| Автор: Snowy 6.9.2006, 10:47 |
| Должен быть в списке. Попробуй закрыть окно и вызвать снова. Если не получится, создай новый порт - дай ему другое - понятное имя, Имя принтера/IP - localhost. Вот примерный скрин: ![]() |
| Автор: ИгнатьевАлексей 6.9.2006, 11:05 |
| Спасибо! Увидел. Самого того принтера у меня сейчас нет и я смотрел в свойствах другого принтера, не обратив внимание, что он сетевой. Еще раз спасибо за исчерпывающую инфу. Буду разбираться с написанием сервера. |