PDA

Показать полную графическую версию : Печать средствами Pascal


Hector
27-01-2010, 22:29
Есть файл состоящий из записей:

type
group=record
name:string;
boss:string;
style:string;
end;

var
data: file of group;

Необходимо вывести его на печать средствами Pascal (в виде процедуры). Принтер Usb.
Проблема в том, что вразумительной информации как это сделать не нашел.

использование модуля Printer не прокатывает, ошибка 160

pva
28-01-2010, 07:33
(Code: 160; Meaning: ′Ошибка записи устройства′ {Device write fault}),
http://www.excode.ru/art4311.html

Вы пытаетесь из ДОСа писать что-то на принтер USB? Какой компилятор используется, в какой среде, как (насколько успешно) печатают программы сторонних производителей?

Hector
28-01-2010, 13:32
Вы пытаетесь из ДОСа писать что-то на принтер USB? »
Выходит что так
Какой компилятор используется, в какой среде »
Turbo Pascal 7.0, Windows 7
как (насколько успешно) печатают программы сторонних производителей? »
Что имеется ввиду?

BlackEric
28-01-2010, 15:25
Turbo Pascal 7.0, Windows 7 »
А почему не использовать современный?

как (насколько успешно) печатают программы сторонних производителей? »
Что имеется ввиду?
»
Запускаем старый добрый Norton/Volkov и добиваемся печати текстового файла из него

pva
28-01-2010, 18:24
Скорее всего у вашего принтера отключена имитация LPT-порта для программ DOS. Могут ещё возникнуть проблемы с кодировкой кириллицы, это решается специальными программами, которые читают LPT и отрисовывают на принтере в Windows. Либо включайте LPT, либо бросайте этого динозавра (turbo pascal) и переходите на делфи.

Hector
28-01-2010, 20:10
Насчет динозавра, я бы бросил, но преподаватель не оценит (это задание по лабораторной работе). Можно подробнее насчет включения LPT? Принтер Lexmark z705

pva
29-01-2010, 10:29
похоже такая галочка для любого принтера была в Windows 9x, в XP уже не нашёл
остаётся 2 варианта:
(1)

в реестре HKLM/System/CurrentControlSet/Control/Session Manager/DOS Devices добавляем LPT1=\DosDevices\c:\printer.txt
перезагружаемся
создаём пустой файл printer.txt и запускаем программу, печатаем из неё
смотрим этот файл блокнотом со шрифтом Terminal. При необходимости можно его распечатать на принтере

(2)
пользуемся спецсофтом http://www.xpdeveloper.com/srch-4ams2nuck6.html

Hector
29-01-2010, 16:40
Т. е. на паскале это без всяких# в реестре HKLM/System/CurrentControlSet/Control/Session Manager/DOS Devices добавляем LPT1=\DosDevices\c:\printer.txt
# перезагружаемся
# создаём пустой файл printer.txt и запускаем программу, печатаем из неё
# смотрим этот файл блокнотом со шрифтом Terminal. При необходимости можно его распечатать на принтере »
сложностей не реализовать?

pva
30-01-2010, 09:44
это реализуется редактором реестра, блокнотом и проводником. Паскаль (который думает, что работает по DOS), знать об этом не будет. Паскалем нужно сделать шаг запускаем программу, печатаем из неё »

Hector
31-01-2010, 18:28
Да, но так называемая печать пойдет в созданный файл, после чего его нужно распечатывать в реальности, а нужно чтобы печать происходила сразу же, без лишних телодвижений

pva
31-01-2010, 19:04
(2)
пользуемся спецсофтом http://www.xpdeveloper.com/srch-4ams2nuck6.html »

SharkyEXE
02-12-2010, 18:06
1) Имеется принтер Samsung ML-1210 (http://www.ixbt.com/peripheral/samsung-ml-1210.shtml)
2) Имеется Windows XP SP3
3) Имеется Borland Pascal 7
Проблема: нужно при помощи команды File-Print из Borland Pascal 7 вывести на печать содержимое файла Test.pas. Спасибо.

Любезный
02-12-2010, 18:23
А в чём собсно проблема? Не чепятает?

Если так - полагаю, этот принтер не поддерживает печать из-под DOS-программ. Тогда лучше печатать не из Паскаля, а из текстового редактора, поддерживающего кодировку 866.

SharkyEXE
02-12-2010, 18:49
Любезный
Больше интересует работа самой функции печати в Borland Pascal 7

malush1.12
07-12-2010, 23:45
принтер при печати выдает
INTERNAL ERROR – FALSE
POSITION: 0x3056c4
SYSTEM: H6FW/xl_image
LINE: 495
VERSION: QPDL 1.40 11-14-2005

что делать?




© OSzone.net 2001-2012