[ klukin5 @ 04.01.2003. 22:04 ] @
Mozete li mi pomoci te napisati kod programa koji bi iz C-a ispisao nesto na printer.
[ tOwk @ 05.01.2003. 06:06 ] @
Code:

#include <stdio.h>

int main() {
    FILE *printer;
    printer = fopen("/dev/lp0","wb");
    fprintf(printer,"nesto\f");
    fclose(printer);
    return 0;
}
[ Goran Rakić @ 05.01.2003. 09:27 ] @
naravno, ovo iznad radi samo na sistemima gde postoji /dev/lp0
[ klukin5 @ 05.01.2003. 20:04 ] @
Probao sam ovaj kod,ali nije radio.Sto mogu promijeniti da radi?
[ tOwk @ 05.01.2003. 20:12 ] @
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.
[ Ivan Tanasic @ 05.01.2003. 20:14 ] @
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...
[ Reljam @ 05.01.2003. 20:30 ] @
Napisi molim te koji OS, koji C, pa da vidimo sta mozemo da uradimo - nazalost ne postoji opste resenje.
[ klukin5 @ 05.01.2003. 20:48 ] @
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.
[ Milan Aksic @ 05.01.2003. 22:41 ] @
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:
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;
}

Nadam se da je ovo pomoglo ;o)
[ tOwk @ 07.01.2003. 14:28 ] @
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?
[ klukin5 @ 08.01.2003. 10:37 ] @
Sad sam vidio da mi je printer na USB portu.Sta tribam promjenit?
[ Milan Aksic @ 08.01.2003. 13:38 ] @
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?
[ tOwk @ 08.01.2003. 22:38 ] @
Citat:
klukin5:
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.
[ Milan Aksic @ 09.01.2003. 00:34 ] @
Zar treba nagadjati, da li ti hoces da razvijas Linux, DOS ili Windows program ili cak mozda... drajver/e za printer za pomenute platforme?