Archief - [C] Afdrukken op printer

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Talos

Legacy Member
Mss kijk ik er volkomen naast of zoek ik op foute termen. Maar hoe kan ik iets afdrukken op een printer vannuit een C-programma? En is er ook een manier om bijvoorbeeld de beschikbare printers te zoeken?
Ik werk wel in een zeer basic programma, zo een dos-achtig-venstertje maw :-)


Als dat hier fout zou staan, move dan maar. Dank.

Zero Grav

Legacy Member
Ja, 'k vermoed da ge die vraag beter op software forum kunt vragen. :)

DieselPower

Legacy Member
ni echt, gamedesign lijkt me beter, daar zijn ze toch bezig met C/C++/C# en wie weet wa nog allemaal

Talos

Legacy Member
Hmm keer vragen om te moven dan :)

Ondertussen al dingen gevonden ivm stdprn enzo maar dat lijkt niet echt te werken.

Reck

Legacy Member
#include <stdio.h>
main()
{
FILE *stream;

stream = fopen("PRN", "w");
fprintf(stream, "a line of text\n");
}

ge kunt het es uitteste; heb hier geen printer staan

Talos

Legacy Member
Het rare is dat het niet werkt maar als ik in de eigenschappen van mijn printer ga kijken en dan ergens bij afdrukprocessor de optie van RAW naar TEXT verander hij ineens wel afdrukt.
En de bedoeling is ook van opmaak aan de tekst mee te geven dmv van pcl/esc-commandos (of hoe ze ook mogen noemen), maar dit lijkt ook niet te lukken.

Voorbeeldje van codes: http://www.dragon-it.co.uk/links/hp_pcl_codes.htm
[ESC] moet telkens "&#8592;" worden heb ik begrepen?

wlibaers

Legacy Member
Het is gewoonlijk niet nodig (en geen goed idee) om zelf rechtstreeks dingen naar de printer te sturen, daar zijn drivers voor.

Welk OS?

Op Unix en gelijkaardige systemen zit er gewoonlijk een printersysteem dat Postscript kan verwerken. Postscript commando's maken en naar de spooler sturen (of commando's naar een specifiek systeem sturen, zoals CUPS).

In Windows kan GDI gebruikt worden om eender welke printer waarvoor Windows drivers bestaan te gebruiken. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_62ia.asp

Talos

Legacy Member
Het probleem is net dat ik geen drivers mag gebruiken en alles rechtstreeks naar de printer moet sturen (project voor school enzo)

fromalk

Legacy Member
k heb hier toevallig t printerscript van mn school nog:

edit: iets te snel op post geklikt :sad:

Code:
color y+/n

cls

BOX (0,0,4,70,"SINGLE")

At (2,15) "Provinciale Handelsschool printerscript"

At (4,0)
color w+/n

?

if DelPrinterConnection ("\\L212P04115\PRT212") = 0
else
Endif

At(8,0) "Printer verbinden..."
If AddPrinterConnection ("\\L212P04115\PRT212") = 0
   At(8,28) "OK!"
Else
   At(8,28) "mislukt."
   at(9,28) "Zorg ervoor dat PC 04-115 aan staat."
   at(10,28) "Daarna kan u met de printer verbinden via :"
   at(11,28) "START - PROGRAMMA's - OPSTARTEN - PRT212"
   sleep 5
Endif

sleep 1
Zou duidelijk moeten zijn, is wel geen c, en heb geen idee welke taal dat het wel is, k weet dat men dit script in een .kix file heeft staan die men via een .bat file inlaad, de pc waarmee je verbind heeft de printeraangesloten en gedeeld (incl eventueel benodigde netwerk drivers), op deze manier wordt je printer geinistialliseerd en blijft hij als actief staan voor alle user op de client pc (zo zit t bij ons op school toch :doh: )


edit 2:
Ik zie net pas je laatste reply en je bent steeds verplicht om te sturen naar de pc waarmee de printer verbonden is, je kan bij mijn weten niet rechtstreeks naar de printer sturen, mss wel naar een externe hub die als server functioneerd voor de printer. Alsook bij de meeste basic printers heb je geen drivers nodig hoor :) Als het een project voor school is doe je dus gewoon het volgende:
koppel printer aan op pc1
alle andere pc's zet je die source in een kix file in de directory opstarten (documents and settings, all users, menu start, opstarten) en je past de source van hierboven aan om met pc1 te verbinden en neemt evenuteel ook handelsschool hasselt weg ;)

killgore

Legacy Member
Talos zei:
Het rare is dat het niet werkt maar als ik in de eigenschappen van mijn printer ga kijken en dan ergens bij afdrukprocessor de optie van RAW naar TEXT verander hij ineens wel afdrukt.
En de bedoeling is ook van opmaak aan de tekst mee te geven dmv van pcl/esc-commandos (of hoe ze ook mogen noemen), maar dit lijkt ook niet te lukken.

Voorbeeldje van codes: http://www.dragon-it.co.uk/links/hp_pcl_codes.htm
[ESC] moet telkens "&#8592;" worden heb ik begrepen?
in C moet je de ascii-waardes gebruiken die er naast staat ;)

en als ie RAW aanvaard, dan zou ik eens in binary mode proberen openen ;)(is maar idee, ik heb nog nooit rechtstreeks voor printer geprogrammeerd).

Talos

Legacy Member
Die binary mode had ik ondertussen al door dat ik dat best zou veranderen :)
Maar ga straks eens verder testen, alvast bedankt.

*edit*
Hmm in binaire-modus krijg ik wel een document te zien in de wachtrij van de printer maar afdrukken doet hij niet (document verdwijnt dan ook na een paar seconden)

@fromalk: Uw oplossing past niet echt binnen de opgave. We moeten gewoon naar eender welke printer kunnen sturen, of die nu op usb, netwerk op lpt zit. En we kunnen niets verplaatsen of aanpassen.


Ik heb ergens iets opgevangen over rechtstreeks de parallele poort aanspreken ofzo, maarja daar vind ik vooreerst geen bruikbare info over.

wlibaers

Legacy Member
Talos zei:
@fromalk: Uw oplossing past niet echt binnen de opgave. We moeten gewoon naar eender welke printer kunnen sturen, of die nu op usb, netwerk op lpt zit. En we kunnen niets verplaatsen of aanpassen.

Vraag maar eens aan de leraar of je de opdracht goed begrepen hebt, want dit lijkt nogal sterk op iets waarvoor een heel team programmeurs meerdere jaren nodig zou hebben, en dan nog niet volledig af te werken. Eender welke printer, op eender welke plaats? :wtf:

Tyfius

Legacy Member
zijde zeker da als ge basic C hebt, da ge ni gewoon in ne file moet wegschrijven ? :)

naar ne printer sturen da hebde ni op 1-2-3 gedaan, en kzie op school niemand paar 1000den regels code schrijven voor 1 kleine oefening :x

Talos

Legacy Member
Tyfius zei:
zijde zeker da als ge basic C hebt, da ge ni gewoon in ne file moet wegschrijven ? :)

naar ne printer sturen da hebde ni op 1-2-3 gedaan, en kzie op school niemand paar 1000den regels code schrijven voor 1 kleine oefening :x

We mogen de gegevens in een file wegschrijven vooraleer we de gegevens naar de printer sturen. Maarja dan zit ik met ongeveer dezelfde problemen denk ik?

En nog een klein bijkomend vraagje, hoe gebruik ik juist die ascii codes in een C programma?

*edit*
En het gaat dus niet echt om een kleine oefening, eerder om een project dat voor redelijk wat punten meetelt :-)

Reck

Legacy Member
en dat zoals gewoonlijk tot op de laatste moment is uitgesteld waarschijnlijk :)

Talos

Legacy Member
Reck zei:
en dat zoals gewoonlijk tot op de laatste moment is uitgesteld waarschijnlijk :)

Ik heb nog verschillende weken de tijd hoor, dus zo dringend is het niet. Maar hoe sneller ik het kan afwerken hoe beter.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan