Discussion:
Kody sterujące dla drukarki igłowej
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Ela
2003-07-22 08:37:24 UTC
Permalink
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej. Zamierzam
przesyłać wydruk do drukarki linia po lini.
Np. chce zagęścić wydruk wpisując #15 a następnie odwołać zagęszczenie
wpisując #18. Drukarka nie reaguje na te znaki.
Wiem że w Pascalu nie było z tym problemów.

var
f:Textfile;
begin
AssignPrn(f);
try
Rewrite(f);
Writeln(f, #15+ 'fxfbsjkvdhnkbjdfnblkfmng');
Write(f, #18);
Writeln(f,'cuda na kiju powinno sie wydrukowac');
writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
finally
CloseFile(f);
end;
end;

--

Pozdrawiam
Ela
***@arkomp.com.pl
PaSkol
2003-07-22 09:21:50 UTC
Permalink
Post by Ela
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej.
Np. chce zagęścić wydruk wpisując #15 a następnie odwołać
zagęszczenie wpisując #18. Drukarka nie reaguje na te znaki.
Wiem że w Pascalu nie było z tym problemów.
W Delphi jest (IMHO) wygodniej:

AssignPrn(PrintFile);
ReWrite(PrintFile);
try
with Printer.Canvas.Font do
begin // ustawiamy styl nagłówka
Pitch:=fpFixed;
Size:=10;
Style:=[fsBold];
end;
Writeln(PrintFile,Format(strPrnTitle,[Firma,Kod,NIP]):80,#13#10);
Printer.Canvas.Font.Style:=[]; // odwołujemy styl nagłówka
while not tbOrder.Eof do
Writeln(PrintFile,
tbOrder[OR_SYMBOL],tbOrder[OR_ZAMOW]:30-Length(S));
tbOrder.Next;
end;
finally
CloseFile(PrintFile);

[OT]: Ponieważ ostatnio często potykam się o nie na liście, doszedłem do
wniosku, że pora przypomnieć, jak się je pisze poprawnie:

używać
odświeżyć
--
PaSkol
Miroo_news
2003-07-22 10:48:12 UTC
Permalink
Post by PaSkol
with Printer.Canvas.Font do
begin // ustawiamy styl nagłówka
Pitch:=fpFixed;
Size:=10;
Style:=[fsBold];
end;
A czy to będzie znakowo czy graficznie? Bo chyba mało kto ma ochotę drukować
graficznie na igłówce...
Post by PaSkol
[OT]: Ponieważ ostatnio często potykam się o nie na liście, doszedłem do
używać
odświeżyć
i jeszcze "bieżący" :)

Popieram i pozdrawiam
MirekP
Ela
2003-07-22 11:00:05 UTC
Permalink
Post by Miroo_news
A czy to będzie znakowo czy graficznie? Bo chyba mało kto ma ochotę drukować
graficznie na igłówce...
Post by PaSkol
[OT]: Ponieważ ostatnio często potykam się o nie na liście, doszedłem do
używać
odświeżyć
i jeszcze "bieżący" :)
Za błędy ortograficzne przepraszam.
Drukować chce na igłówce. Owszem przejście do nowej lini (przykład
poprzednika) jest obsługiwane bez problemów.
Nie reaguje natomiast na znaki sterujące wydrukiem np. #15-zagęszczenie
wydruku ,#18-odwołanie zagęszczenia itd.

Pozdrawiam
Ela
Karol Kopeć
2003-07-22 11:12:59 UTC
Permalink
Post by Ela
Nie reaguje natomiast na znaki sterujące wydrukiem np. #15-zagęszczenie
wydruku ,#18-odwołanie zagęszczenia itd.
a nie powinno być porzedzone znakiem ESC (27)
np. #27#15

--
Pozdrowienia Karol Kopeć
Ela
2003-07-22 11:43:43 UTC
Permalink
Post by Karol Kopeć
a nie powinno być porzedzone znakiem ESC (27)
np. #27#15
No niestety to nic nie zmienia. Niektóre znaki sterujące rzeczywiście mają
z przodu #27np. #27#72 koniec tłustego wydruku.
Mój wydruk natomiast nie reaguje na rzadne znaki sterujące.

Pozdrawiam
Ela
PaSkol
2003-07-22 12:34:45 UTC
Permalink
Post by Miroo_news
A czy to będzie znakowo czy graficznie? Bo chyba mało kto ma ochotę
drukować graficznie na igłówce...
Właśnie sprawdziłem, po zainstalowaniu typowej igłówki (Epson FX 80) i
przekierowaniu jej na plik, to co w nim siedzi jest grafiką. I to
niezależnie czy zostanie użyte czy nie odwołanie do obiektu Printer.

Czyli wyglądałoby na to, że Ela też drukuje graficznie i być może stąd
kłopoty ze znakami sterującymi.

Acha, w aplikacji konsolowej wydruk też jest graficzny.

Eli proponowałbym test (z wynikami chętnie się zapoznam). Proszę użyć
zamiast AssignPrn(F) - AssignFile(F,'LPT1:') i dokonać wydruku. Po takim
zabiegu u mnie na laserze w miejscach znaków sterujących drukuje ich
graficzne reprezentacje (czyli przechodzą, tylko drukarka ich nie
rozumie). Testowałem zarówno w aplikacji konsolowej, jak i okienkowej.
--
PaSkol
Ela
2003-07-23 08:57:53 UTC
Permalink
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?

Pozdrawiam
Ela
PaSkol
2003-07-23 09:34:17 UTC
Permalink
Post by Ela
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
On i tak tego nie wie.
--
PaSkol
Piotr Hosowicz
2003-07-23 12:07:57 UTC
Permalink
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
On i tak tego nie wie.
Co Ty dupisz pajacu ?
Zamknij dupę i spłyń. Zaczynasz mnie znowu irytować, głupku.
--
Pozdrawiam,
Piotr Hosowicz
Piotr Hosowicz
2003-07-23 09:35:45 UTC
Permalink
Post by Ela
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
Pani Elu, niech Pani nie dyskutuje z tym głupkiem. Szkoda na to czasu.
--
Pozdrawiam,
Piotr Hosowicz
StoK
2003-07-24 06:42:47 UTC
Permalink
----- Original Message -----
From: "Ela" <***@poczta.onet.pl>
To: <pl-comp-lang-***@newsgate.pl>
Sent: Wednesday, July 23, 2003 10:57 AM
Subject: Odp: Kody sterujące dla drukarki igłowej
Post by Ela
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
Poznasz go po tym że nie jest skalowalny (ma 1 lub dwa rozmiary) zazwyczaj
ich nie ma w komputerze.

Jest jeszcze sposób na bezpośrednie przesyłanie danych do drukarki nazywa
się to chyba raweFormat (ale mogę się mylić).


StoK
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.delphi
Tocbac
2003-07-24 12:43:05 UTC
Permalink
Post by StoK
----- Original Message -----
Sent: Wednesday, July 23, 2003 10:57 AM
Subject: Odp: Kody sterujące dla drukarki igłowej
Post by Ela
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
Poznasz go po tym że nie jest skalowalny (ma 1 lub dwa rozmiary) zazwyczaj
ich nie ma w komputerze.
Jest jeszcze sposób na bezpośrednie przesyłanie danych do drukarki nazywa
się to chyba raweFormat (ale mogę się mylić).
Nie rozumiem ciągnących się gdybań. Ja nie ściągnąłem ale skoro
Yankee ma komponent do tego i ręczy głową za efekt to
myślę, że warto się przekonać.

Pozdrawiam.

--
Tocbac
***@o2.pl
StoK
2003-07-28 07:14:56 UTC
Permalink
----- Original Message -----
From: "Tocbac" <***@o2.pl>
To: <pl-comp-lang-***@newsgate.pl>
Sent: Thursday, July 24, 2003 2:43 PM
Subject: Re: Kody sterujące dla drukarki igłowej
Post by Tocbac
Post by StoK
----- Original Message -----
Sent: Wednesday, July 23, 2003 10:57 AM
Subject: Odp: Kody sterujące dla drukarki igłowej
Post by Ela
Do drukowania tekstowego wystarczy wybrać odpowiedni font.
A czy można wiedzieć jaki?
Poznasz go po tym że nie jest skalowalny (ma 1 lub dwa rozmiary) zazwyczaj
ich nie ma w komputerze.
Jest jeszcze sposób na bezpośrednie przesyłanie danych do drukarki nazywa
się to chyba raweFormat (ale mogę się mylić).
Nie rozumiem ciągnących się gdybań. Ja nie ściągnąłem ale skoro
Yankee ma komponent do tego i ręczy głową za efekt to
myślę, że warto się przekonać.
Dobrze jak progamista wie jakie ma możliwości a nie tylko jeden słuszny
komponent.

StoK
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.delphi
Ela
2003-07-28 13:26:40 UTC
Permalink
Post by StoK
Post by Tocbac
Post by StoK
----- Original Message -----
Sent: Wednesday, July 23, 2003 10:57 AM
Subject: Odp: Kody sterujące dla drukarki igłowej
Nie rozumiem ciągnących się gdybań. Ja nie ściągnąłem ale skoro
Yankee ma komponent do tego i ręczy głową za efekt to
myślę, że warto się przekonać.
Dobrze jak progamista wie jakie ma możliwości a nie tylko jeden słuszny
komponent.
Do tej pory nikt nie podał wystarczających konkretów.
Dowód: pytacz ciągle ma kłopoty, patrz najnowszy post. Pytacz nie pisnął
ani
słowa, czy ten od Yankee działa. A więc póki co nie mamy
żadnego oprócz tego uchodzącego za słuszny komponentu.
Jeśli chodzi o to co zaproponował Yankee to dziś sobie pobrałam. Jestem na
etapie zastanawiania sie w jaki sposób moge to wykorzystać. Musze troszke
popatrzeć w źródła.

Pozdrawiam
Ela
***@arkomp.com.pl
Ela
2003-07-23 09:10:46 UTC
Permalink
Post by PaSkol
Eli proponowałbym test (z wynikami chętnie się zapoznam). Proszę użyć
zamiast AssignPrn(F) - AssignFile(F,'LPT1:') i dokonać wydruku. Po takim
zabiegu u mnie na laserze w miejscach znaków sterujących drukuje ich
graficzne reprezentacje (czyli przechodzą, tylko drukarka ich nie
rozumie). Testowałem zarówno w aplikacji konsolowej, jak i okienkowej.
Wyniki mam kiepskie.Ale jeśli mogę prosić o podpowiedź co jest nie tak z
moim kodem.

var
f:TextFile;
begin
AssignFile(f,'LPT1:');
try
Rewrite(f); // w tej lini wywala błąd File not found
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,'cuda na kiju powinno sie wydrukowac'#27#15:0);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
finally
CloseFile(f);
end;
end;
Piotr Hosowicz
2003-07-23 09:35:13 UTC
Permalink
Post by Ela
Post by PaSkol
Eli proponowałbym test (z wynikami chętnie się zapoznam). Proszę użyć
zamiast AssignPrn(F) - AssignFile(F,'LPT1:') i dokonać wydruku. Po takim
zabiegu u mnie na laserze w miejscach znaków sterujących drukuje ich
graficzne reprezentacje (czyli przechodzą, tylko drukarka ich nie
rozumie). Testowałem zarówno w aplikacji konsolowej, jak i okienkowej.
Wyniki mam kiepskie.Ale jeśli mogę prosić o podpowiedź co jest nie tak z
moim kodem.
var
f:TextFile;
begin
AssignFile(f,'LPT1:');
A nie powinno być AssignPrn? AssignPrn + F1
Post by Ela
try
Rewrite(f); // w tej lini wywala błąd File not found
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,'cuda na kiju powinno sie wydrukowac'#27#15:0);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
finally
CloseFile(f);
end;
end;
--
Pozdrawiam,
Piotr Hosowicz
Piotr Hosowicz
2003-07-23 09:55:05 UTC
Permalink
Post by Piotr Hosowicz
A nie powinno być AssignPrn? AssignPrn + F1
No właśnie od tego się zaczeło - wówczas wydruk jest graficzny, a
potrzebny jest tekstowy.
Aha, przepraszam, nie zakumałem bazy.
--
Pozdrawiam,
Piotr Hosowicz
Marcin Wieczorek
2003-07-23 10:27:17 UTC
Permalink
Post by Ela
Wyniki mam kiepskie.Ale jeśli mogę prosić o podpowiedź co jest nie tak z
moim kodem.
var
f:TextFile;
begin
AssignFile(f,'LPT1:');
try
Rewrite(f); // w tej lini wywala błąd File not found
Zamień na Reset(f). Nie jestem pewien czy Rewrite na urządzeniach jest
dozwolony.
--
Marcin Wieczorek "T-1000" DELPHI FAQ http://delphi.cartall.com.pl
GG#:237419______________UIN:3692514______________PGP KeyID:F97C2C2E
Kobiety zmienia się trudniej niż czytniki.
Na ogół nie mają funkcji importu. (c) Zbigniew Okoń
Marcin Wieczorek
2003-07-23 11:44:51 UTC
Permalink
Reset(f);
też pojawia się błąd Invalid filename
A masz w ogóle takie urządzenie w systemie? Sprawdź czy z linii komend
pójdzie Ci wydruk przez copy plik.txt LPT1:
--
Marcin Wieczorek "T-1000" DELPHI FAQ http://delphi.cartall.com.pl
GG#:237419______________UIN:3692514______________PGP KeyID:F97C2C2E
Sumienie - cichy głosik, który szepcze, że ktoś patrzy.
Ela
2003-07-23 12:37:08 UTC
Permalink
Post by Marcin Wieczorek
A masz w ogóle takie urządzenie w systemie? Sprawdź czy z linii komend
urzadzenie mam wydruk z linii komend idzie bez problemu z aplikacji nie
idzie

Pozdrawiam
Ela
Ela
2003-07-23 12:44:26 UTC
Permalink
Jak najbardziej Rewrite. Skoro się nie odzywasz rozumiem, że samo Assign
też nic nie dało. W sumie nazwa urządzenia może zależeć od systemu, może
warto spróbować LPT1 bez dwukropka ? W Dos-ie było jeszcze PRN.
Assign nic nie dało ale absolutnie miałeś racje LPT bez dwukropka wielkie,
wielkie dzięki :)

Pozdrawiam
Ela
eres
2003-07-23 09:18:40 UTC
Permalink
Zapomniałam dodać na igłówce chce drukować w trybie
tekstowym.

Proponuję RawPrint by Przemyslaw Jankowski ***@pjank.pl
(?)
Prosto i skutecznie z pełną kontrolą nad drukarką.

--
Pozdrawiam
Ryszard
Yankee
2003-07-23 17:38:31 UTC
Permalink
Post by eres
Zapomniałam dodać na igłówce chce drukować w trybie
tekstowym.
(?)
Hehe, to zdaje się o mnie mowa... :-)
eres, masz szczęście że się pomyliłeś z tym emailem, bo za takie
jawne podawanie na grupie bym chyba zabił ;-)))
Post by eres
Prosto i skutecznie z pełną kontrolą nad drukarką.
Dzięki! Miło słyszeć, że i tutaj są zadowoleni użytkownicy :)

To może podam jeszcze przy okazji adres:
ftp://pjank.home.pl/delphi/RawPrint.zip
--
Przemo Jankowski * Yankee * email: pjank-home.pl
Saper/nolin11
2003-07-24 21:28:31 UTC
Permalink
ja zrobiłem to tak i działa:

<code>
var i : integer;
f : TextFile;
begin
try
AssignFile(f,'LPT1');
Rewrite(f);
for i := 0 to Memo1.Lines.Count - 1 do begin
writeln(f,Memo1.Lines.Strings[i]);
end;
finally
CloseFile(f);
end;
</code>

U mnie drukarka drukuje normalnie (szybko - czyli raczej nie w trybie
graficznym)
Mam Mam Epson LX-1050

--
Saper/nolin11
http://nolin11.w.interia.pl/
mailto:***@NOSPAMinteria.pl
mailto:***@NOSPAMgazeta.p
GG: 4476700
Usuń NOSPAM z e-mail
StoK
2003-07-28 07:14:56 UTC
Permalink
----- Original Message -----
From: "Saper/nolin11" <***@NOSPAMinteria.pl>
To: <pl-comp-lang-***@newsgate.pl>
Sent: Thursday, July 24, 2003 11:28 PM
Subject: Re: Kody sterujące dla drukarki igłowej
Post by Saper/nolin11
<code>
!!> var i : integer;
!!> f : TextFile;
Post by Saper/nolin11
begin
try
!!> AssignFile(f,'LPT1');
!!> Rewrite(f);
Post by Saper/nolin11
for i := 0 to Memo1.Lines.Count - 1 do begin
!!> writeln(f,Memo1.Lines.Strings[i]);
Post by Saper/nolin11
end;
finally
!!> CloseFile(f);
Post by Saper/nolin11
end;
</code>
U mnie drukarka drukuje normalnie (szybko - czyli raczej nie w trybie
graficznym)
Mam Mam Epson LX-1050
--
Saper/nolin11
http://nolin11.w.interia.pl/
GG: 4476700
Usuń NOSPAM z e-mail
!! - cykl drukowania w trybie tekstowym na drukarce.
Jest to proste jak drut drukarka podłączona do LPT1 jest traktowana przez
system (bylo w DOS, jest nadal) jak plik o nazwie LPT1 lub PLT1:

StoK
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.delphi
Yankee
2003-07-28 09:14:38 UTC
Permalink
Post by StoK
Jest to proste jak drut drukarka podłączona do LPT1 jest traktowana przez
1. Nie działa to, jeśli chodzi o drukarkę sieciową - nawet jeśli zostanie
dla niej ustawione przekierowanie z portu LPT1
2. Nie zadziała, jeśli user podłączy się np. pod LPT2 ;)
3. Zawsze się zastanawiałem, co się stanie jeśli drukarka jest akurat zajęta
innym wydrukiem, albo inna aplikacja akurat przygotowuje wydruk
"standardowymi metodami" (wysyłając go do spoolera), a my się wtrącimy z
bezpośrednim zapisem do portu. Nigdy nie miałem jakoś okazji tego sprawdzić,
ale obawiam się że efekt może być nieciekawy - może mnie ktoś oświeci ?
4. Już tak dawno nie używałem tej metody, że nie pamiętam... ale czy
przypadkiem przy wysyłaniu w ten sposób większego wydruku nasza aplikacja
nie jest cały czas zablokowana - do czasu skończenia wydruku ? Podobnie,
jeśli chcemy tych wydruków zrobić kilka pod rząd...

Używając "mojej" metody:
- Działamy na *domyślnej* drukarce zainstalowanej w systemie. Jeśli user
zmieni domyślną, przestawi się również nasz program.
- Możesz również podać dowolną inną drukarkę (poprzez jej nazwę, a nie port)
- Nie ma problemów z drukarkami sieciowymi !
- Wydruk jest wysyłany do spoolera i (jeśli coś tam już czeka) ustawia się
jako ostatni w kolejce. Dalej już system się tym zajmuje. User może
oczywiście wykorzystywać takie funkcje spoolera, jak pauzowanie lub
anulowanie wydruku.
- Nie sprawdzałem tego, ale możliwe że zadziała również gdy drukarkę
podłączono przez USB (a takich dziś coraz więcej) - pod warunkiem
oczywiście, że nie jest to drukarka GDI i potrafi drukować w zwykłym trybie
tekstowym. No chyba, że wysyłamy plik już obrobiony przez sterownik drukarki
(taki *.prn), no to wtedy już chyba musi działać bez wyjątków.

W podawanej przeze mnie paczuszce są dwie "wersje": komponent TRawPrinter
i wersja "bezkomponentowa" (prosta procedurka) w oddzielnym unicie - każdy
wybiera to co lubi :) Wszystko free ze źródłami.
--
Przemo Jankowski * Yankee * email: pjank-home.pl
StoK
2003-07-29 06:43:33 UTC
Permalink
Post by Yankee
Post by StoK
Jest to proste jak drut drukarka podłączona do LPT1 jest traktowana przez
1. Nie działa to, jeśli chodzi o drukarkę sieciową - nawet jeśli zostanie
dla niej ustawione przekierowanie z portu LPT1
oczy wiście
Post by Yankee
2. Nie zadziała, jeśli user podłączy się np. pod LPT2 ;)
ha ha ha ale śmieszne ;)
Post by Yankee
3. Zawsze się zastanawiałem, co się stanie jeśli drukarka jest akurat zajęta
innym wydrukiem, albo inna aplikacja akurat przygotowuje wydruk
"standardowymi metodami" (wysyłając go do spoolera), a my się wtrącimy z
bezpośrednim zapisem do portu.
^^^^^^^^^^^^^^^^^^^^^^^^^^
To nie jest bezpośredni zapis na port.
Post by Yankee
Nigdy nie miałem jakoś okazji tego sprawdzić.
ale obawiam się że efekt może być nieciekawy - może mnie ktoś oświeci ?
Też nie ćwiczylem tego ale to dziala dla wszystkich starych aplikacji (z
DOS), tam niektórzy nawet piszą przez BIOS i działa.
Post by Yankee
4. Już tak dawno nie używałem tej metody, że nie pamiętam... ale czy
przypadkiem przy wysyłaniu w ten sposób większego wydruku nasza aplikacja
nie jest cały czas zablokowana - do czasu skończenia wydruku ? Podobnie,
jeśli chcemy tych wydruków zrobić kilka pod rząd...
Jeśli wydruk idzie przez plik to drukaowany jest po zamknięciou pliku i nic
tu nie namiesza.
Jak plik będzie duży to mogą wystąpić opóznienia.

Jeżeli wydruk idzie przez BIOS (wywolanie przerwania), to system czeka okolo
5s na kontynuację (przy ostatniej kartce). Jeśli nic nie przyjdzie, to
oddaje drukarkę innemu procesowi. Jesli ten proces zamknie się wceśniej to
zostanei wydrukowana pozostalość
Post by Yankee
- Działamy na *domyślnej* drukarce zainstalowanej w systemie. Jeśli user
zmieni domyślną, przestawi się również nasz program.
- Możesz również podać dowolną inną drukarkę (poprzez jej nazwę, a nie port)
- Nie ma problemów z drukarkami sieciowymi !
- Wydruk jest wysyłany do spoolera i (jeśli coś tam już czeka) ustawia się
jako ostatni w kolejce. Dalej już system się tym zajmuje. User może
oczywiście wykorzystywać takie funkcje spoolera, jak pauzowanie lub
anulowanie wydruku.
- Nie sprawdzałem tego, ale możliwe że zadziała również gdy drukarkę
podłączono przez USB (a takich dziś coraz więcej) - pod warunkiem
oczywiście, że nie jest to drukarka GDI i potrafi drukować w zwykłym trybie
tekstowym. No chyba, że wysyłamy plik już obrobiony przez sterownik drukarki
(taki *.prn), no to wtedy już chyba musi działać bez wyjątków.
W podawanej przeze mnie paczuszce są dwie "wersje": komponent TRawPrinter
i wersja "bezkomponentowa" (prosta procedurka) w oddzielnym unicie - każdy
wybiera to co lubi :) Wszystko free ze źródłami.
Dzięki za dyskusję może w końcu poznam format RawPrinter, moze kiedyś się
przydać.

Czy mógłbyś podać namiar, gdzie jest źródło?

StoK
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.delphi
Yankee
2003-07-29 08:46:24 UTC
Permalink
Post by StoK
Czy mógłbyś podać namiar, gdzie jest źródło?
No przecież podawałem obok w tym samym wątku.
ftp://pjank.home.pl/delphi/RawPrint.zip
--
Przemo Jankowski * Yankee * email: pjank-home.pl
Ela
2003-08-01 11:48:43 UTC
Permalink
Post by Yankee
Post by StoK
Czy mógłbyś podać namiar, gdzie jest źródło?
No przecież podawałem obok w tym samym wątku.
ftp://pjank.home.pl/delphi/RawPrint.zip
--
Przemo Jankowski * Yankee * email: pjank-home.pl
Witam

Ja jednak nadal mam problem ze sterowaniem zagęszczeniem na wydruku w
trybie tekstowym. Pobrałam sobie komponent przejrzałam go zrobiłam na jego
bazie wydruk. To jednak nie rozwiązało mojego problemu bo nadal nie moę np.
zagęścić wydruku. Czy ten komponent umożliwia mi wpisanie np. # 15 i
zmuszenie tym samym igłówki do zagęszczenia wydruku.

Pozdrawiam
Ela
***@arkomp.com.pl
eres
2003-08-01 12:42:51 UTC
Permalink
Witaj!
Post by Ela
Ja jednak nadal mam problem ze sterowaniem zagęszczeniem
na wydruku w
Post by Ela
trybie tekstowym. Pobrałam sobie komponent przejrzałam go
zrobiłam na jego
Post by Ela
bazie wydruk. To jednak nie rozwiązało mojego problemu bo
nadal nie moę np.
Post by Ela
zagęścić wydruku. Czy ten komponent umożliwia mi wpisanie
np. # 15 i
Post by Ela
zmuszenie tym samym igłówki do zagęszczenia wydruku.
Wpisać możesz cokolwiek, ale co z tego wyjdzie to nie wiem
;-)
Nie znam kodu #15 w sterowaniu trybem tekstowym.
Znam za to:
CRLF = Chr( 13 ) + Chr( 10 ); // CarrRet +
Line Feed
FF = Chr( 12 ); // Form Feed
D10CPI = Chr( 27 ) + Chr( 33 ) + Chr( 0 );
D10CPI_BOLD = Chr( 27 ) + Chr( 33 ) + Chr( 8 );
D12CPI = Chr( 27 ) + Chr( 33 ) + Chr( 1 );
D15CPI = Chr( 27 ) + Chr( 33 ) + Chr( 4 );
D17CPI = Chr( 27 ) + Chr( 33 ) + Chr( 5 );
DBOLD_ON = Chr( 27 ) + Chr( 69 );
DBOLD_OFF = Chr( 27 ) + Chr( 70 );
itd.
a używam tych stałych tak:
RawPrint( Drukarka(), 'NazwaWydruku', D15CPI +
sDrukowanyTekst + D10CPI + FF );

--
Pozdrawiam
Ryszard

robik
2003-07-25 10:53:30 UTC
Permalink
Witam

Sterowanie taką drukarką jest banalne, wystarczy otworzyc port LPT1, czyli
Createfile, WriteFile ...... i po krzyku. Jak to zrobić było już na
grupie...


Pzdr
Post by Ela
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej. Zamierzam
przesyłać wydruk do drukarki linia po lini.
Np. chce zagęścić wydruk wpisując #15 a następnie odwołać zagęszczenie
wpisując #18. Drukarka nie reaguje na te znaki.
Wiem że w Pascalu nie było z tym problemów.
var
f:Textfile;
begin
AssignPrn(f);
try
Rewrite(f);
Writeln(f, #15+ 'fxfbsjkvdhnkbjdfnblkfmng');
Write(f, #18);
Writeln(f,'cuda na kiju powinno sie wydrukowac');
writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
finally
CloseFile(f);
end;
end;
--
Pozdrawiam
Ela
Ela
2003-07-28 08:05:59 UTC
Permalink
Post by Ela
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej. Zamierzam
przesyłać wydruk do drukarki linia po lini.....
Bardzo dziękuje za wszystkie podpowiedzi. Już drukuje mam tylko jeszcze
jeden problem :)
Przy kolejnym uruchomieniu wydruku dostaje komunikat o błędzie "Invalid
filename". Błąd pojawia sie w lini Rewrite(f).

procedure TForm1.BitBtn1Click(Sender: TObject);
var
f:TextFile;
begin
AssignFile(f,'LPT1');
try
Rewrite(f);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,'cuda na kiju powinno sie wydrukowac'#15);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,#18);
finally
CloseFile(f);
end;
end;

Pozdrawiam
Ela
***@arkomp.com.pl
Saper/nolin11
2003-07-28 09:30:38 UTC
Permalink
Post by Ela
Post by Ela
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej.
Zamierzam przesyłać wydruk do drukarki linia po lini.....
Bardzo dziękuje za wszystkie podpowiedzi. Już drukuje mam tylko
jeszcze jeden problem :)
Przy kolejnym uruchomieniu wydruku dostaje komunikat o błędzie
"Invalid filename". Błąd pojawia sie w lini Rewrite(f).
procedure TForm1.BitBtn1Click(Sender: TObject);
var
f:TextFile;
begin
AssignFile(f,'LPT1');
try
Rewrite(f);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,'cuda na kiju powinno sie wydrukowac'#15);
Writeln(f,'fxfbsjkvdhnkbjdfnblkfmng');
Writeln(f,#18);
finally
CloseFile(f);
end;
end;
Hmm ja czegoś takiego nie miałęm.... może za szybko prubujesz drukować
ponownie...


--
Saper/nolin11
http://nolin11.w.interia.pl/
mailto:***@NOSPAMinteria.pl
mailto:***@NOSPAMgazeta.p
GG: 4476700
Usuń NOSPAM z e-mail
Krzysztof Swiatkowski
2003-07-30 18:58:00 UTC
Permalink
Dnia Tue, 22 Jul 2003 15:29:43 +0000 (UTC), Yankee
Post by Ela
Czy w Delphi mogę urzywać kodów sterujących do drukarki igłowej. Zamierzam
przesyłać wydruk do drukarki linia po lini.
Proszę poczytać archiwum pod kątem hasła "drukowanie tekstowe".
A poza tym, po raz już nie wiem który przypominam: AssignPrn NIE daje
wydruku tekstowego, jedynie *rysuje* po Canvasie drukarki wpisywany do
"pliku" tekst wykorzystując aktualnie ustawione Printer.Canvas.Font.
Masz całkowitą racje. Ja tylko dodam że w DelphiFAQ jest rozwiązanie
problemu drukowania tekstowego.

Hopbit
--
Krzysztof Swiatkowski, Poland If I put you finger in the eye,
mailto:***@poczta.onet.pl then you have finger in the eye
and I have finger in the eye,
but it's not the same
Loading...