Mozete li mi pomoci te napisati kod programa koji bi iz C-a ispisao nesto na printer.
Printanje iz C-a
Zaključano
Zakačeno
Code:
#include <stdio.h>
int main() {
FILE *printer;
printer = fopen("/dev/lp0","wb");
fprintf(printer,"nesto\f");
fclose(printer);
return 0;
}
#include <stdio.h>
int main() {
FILE *printer;
printer = fopen("/dev/lp0","wb");
fprintf(printer,"nesto\f");
fclose(printer);
return 0;
}
Potpis
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
naravno, ovo iznad radi samo na sistemima gde postoji /dev/lp0
Potpis
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
prezentacije, legalno bez troškova licenciranja
Probao sam ovaj kod,ali nije radio.Sto mogu promijeniti da radi?
probaj "lpt1:" umesto "/dev/lp0"
Ako ni to ne pomaže, pronađi C funkcije za outb() u tvom C-u, i piši na IO port 0x378, ili gde ti se već nalazi paralelni port.
Ako ni to ne pomaže, pronađi C funkcije za outb() u tvom C-u, i piši na IO port 0x378, ili gde ti se već nalazi paralelni port.
Potpis
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
Ja sam pito isto pitanje, davno... pogledaj po forumu i nacices... postoji brdo nacina, a najlakse ti je koriscenjem fprintf funkcije... ukratko, kao argument joj jos prosledis i stdptr ili sta je vec skracenica od standart print(er)... pogledaj po forumu i nacices...
Potpis
Ivan Tanasic - Autoexes
>cd pub
>more beer
>cd pub
>more beer
Napisi molim te koji OS, koji C, pa da vidimo sta mozemo da uradimo - nazalost ne postoji opste resenje.
Ovako:Imam Windows '98 Second Edition,
Printer mi je instaliran na ltp1 port,
Imam Borland C ver 3.1.
Mislio sam da je kod za sve isti.Ako sam jos sto zaboravio napomenite mi.
Hvala na pomoci.
Printer mi je instaliran na ltp1 port,
Imam Borland C ver 3.1.
Mislio sam da je kod za sve isti.Ako sam jos sto zaboravio napomenite mi.
Hvala na pomoci.
U tom ces slucaju (ako sam dobro razumeo sta hoces) morati da koristis PRINTER_INFO_5 (za Win98) i/ili PRINTER_INFO_4 (za WinNT) strukture sa funkcijom EnumPrinters.
Onda kada napravis printer DC, isti 'uglavnom' koristis kao da je u pitanju obican (display) dc.
Na primer, ova funkcija vraca handle na printer dc:
Nadam se da je ovo pomoglo ;o)
Onda kada napravis printer DC, isti 'uglavnom' koristis kao da je u pitanju obican (display) dc.
Na primer, ova funkcija vraca handle na printer dc:
Code:
HDC GetPrinterDC(void)
{
DWORD dwNeeded, dwReturned;
HDC hdc;
PRINTER_INFO_4 * pinfo4;
PRINTER_INFO_5 * pinfo5;
if (GetVersion() & 0x80000000) // Za Win98
{
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0,
&dwNeeded, &dwReturned);
pinfo5 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo5->pPrinterName, NULL, NULL);
free(pinfo5);
}
else // Za WinNT
{
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, NULL,
0, &dwNeeded, &dwReturned);
pinfo4 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo4->pPrinterName, NULL, NULL);
free(pinfo4);
}
return hdc;
}
HDC GetPrinterDC(void)
{
DWORD dwNeeded, dwReturned;
HDC hdc;
PRINTER_INFO_4 * pinfo4;
PRINTER_INFO_5 * pinfo5;
if (GetVersion() & 0x80000000) // Za Win98
{
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0,
&dwNeeded, &dwReturned);
pinfo5 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo5->pPrinterName, NULL, NULL);
free(pinfo5);
}
else // Za WinNT
{
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, NULL,
0, &dwNeeded, &dwReturned);
pinfo4 = malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4,
dwNeeded, &dwNeeded, &dwReturned);
hdc = CreateDC(NULL, pinfo4->pPrinterName, NULL, NULL);
free(pinfo4);
}
return hdc;
}
Nadam se da je ovo pomoglo ;o)
Za DOS, i uz pomoć Turbo C 2.01 dostupnog sa community.borland.com, ja nisam imao problema sa mojim kodom kada zamenim "/dev/lp0" sa "lpt1" (znači ipak bez dve tačke).
Možda ti to treba?
Možda ti to treba?
Potpis
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
Sad sam vidio da mi je printer na USB portu.Sta tribam promjenit?
Klukin, da li ti uopste imas driver za taj printer u Win98?
Da li normalno radi?
Da li si uopste probao onaj kood gore?
Da li uopste znas da 'probas' taj kood?
...
Da li si napisao i jednu liniju kooda, kako bi pokusao da resis ovaj problem?
Da li normalno radi?
Da li si uopste probao onaj kood gore?
Da li uopste znas da 'probas' taj kood?
...
Da li si napisao i jednu liniju kooda, kako bi pokusao da resis ovaj problem?
Citat:
klukin5:
Sad sam vidio da mi je printer na USB portu.Sta tribam promjenit?
Sad sam vidio da mi je printer na USB portu.Sta tribam promjenit?
Hobi?
Pređi na nešto jednostavnije, pošto ako koristiš Borland C++ 3.1, a želiš da štampaš na USB štampač iz DOS-a, moraćeš da uđeš u tajne programiranja na niskom nivou.
Bolje programiraj za Windows (možda i to može 3.1, ali zaista ne znam), i koristi ono što je passenger navodio, pošto Windows već ima podršku za USB.
Potpis
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
Zar treba nagadjati, da li ti hoces da razvijas Linux, DOS ili Windows program ili cak mozda... drajver/e za printer za pomenute platforme?