Пример вывода изображения в режиме 640x480 на матричный принтер.
{> Cut here. FileName= GRPRINT.MSG }
- 4INT ----------------------------------------------------- It's interesting -
Msg : 32 of 202 Addr Date
From : Yuriy Kuznetsov 2:5030/333.14 08.10.97
Subj : Как вывести изображение на Printer
-------------------------------------------------------------------------------
Hi Dmitry !
DK> Hyжны исходники для pаботы с пpинтеpом на паскале.
DK> Интеpесyет печать в гpафическом pежиме.
Деpжи.
Это из книжки Вальвачева пpо гpафикy с пpимеpами на Паскале.
Для контpоля: на Епсонах (LX-100, LQ-100) pаботает ;)
Best breast regards, [Team Таллер ;]
Yuriy
Карнеги научил улыбаться, Мерфи дал понять, что это не поможет (c) 1997
--- ГолДЕД 2.50.Beta4+
* Origin: В моей смерти прошу винить Легалайз Марь Иванну... (2:5030/333.14)
{> Cut here. FileName= GRPRINT.PAS }
{ Как вывести изображение на Printer}
{Это из книжки Вальвачева пpо гpафикy с пpимеpами на Паскале.}
{Для контpоля: на Епсонах (LX-100, LQ-100) pаботает ;) }
uses crt,printer,graph;
const
horisontal=0;
vertical=1;
esc=#$1b;
var
d,m:integer;
procedure Printing(turn:integer);
var
n1,n2,i,k,m,j:integer;
begin
sound(1000); delay(100);
sound(500); delay(100); nosound;
setviewport(0,0,639,479,false);
write(lst,esc,'A',#$07);
IF turn=horisontal THEN
begin
n1:=639 and $00FF;
n2:=639 shr 8;
for j:=0 to 479 div 8 do
begin
write(lst,esc,'*',char(1),char(n1),char(n2));
for i:=0 to 639 do
begin
m:=0;
for k:=0 to 7 do
begin
m:=m shl 1;
if getpixel(i,j*8+k)<>0 then inc(m)
end;
write(lst,char(m))
end;
write(lst,#$0d,#$0a)
end
end
ELSE
begin
n1:=479 and $00FF;
n2:=479 shr 8;
j:=0;
repeat
write(lst,esc,'*',char(1),char(n1),char(n2));
for i:=479 downto 0 do
begin
m:=0;
for k:=0 to 7 do
begin
m:=m shl 1;
if getpixel(j+k,i)<>0 then inc(m)
end;
write(lst,char(m))
end;
write(lst,#$0d,#$0a);
inc(j,8)
until j>= 638
end;
write(lst,#$0c);
sound(500); delay(100);
sound(1000); delay(100);
nosound
end;
begin
d:=detect;
initgraph(d,m,'');
circle(639 div 2, 479 div 2,50);
line(200,200,250,270);
outtextxy(260,120,'Printing form the TURBO PASCAL');
printing(horisontal);
repeat until keypressed;
closegraph
end.