Het is de bedoeling dat ik alle print opdrachten opvang met een applicatie en deze data omzet in plaatjes om deze weer door te sturen naar de volgende verwerkingsstap ( archive/ocr/data extractie). In printer settings heb ik met redmon een printer port aangemaakt en deze zo ingesteld dat ie alle data naar een applicatie doorsluist. Als print driver gebruik ik 'generic/ms publisher imagesetter' ingesteld op EMF uitvoer.
Als ik vervolgens iets afdruk dan word men applicatie gestart. Op dat moment zou ik ergens de data van de printer moeten opvangen maar ik zou niet weten hoe.
In de source van gsview word een anonieme pipe aangemaakt en vervolgens word hieruit gelezen alsof het een bestand is.
Dus ik probeer dat ook:
Maar der blijkt geen data te zijn, bytes_waiting = 0. Ik zal wel wat fout doen of iets missen maar ik zou niet weten wat. Op internet kan ik niets vinden en de docs van redmon zijn ook weinig behulpzaam. Iemand die weet hoe ik de printer output moet opvangen of me een stap in de goeie richting kan duwen?
Als ik vervolgens iets afdruk dan word men applicatie gestart. Op dat moment zou ik ergens de data van de printer moeten opvangen maar ik zou niet weten hoe.
In de source van gsview word een anonieme pipe aangemaakt en vervolgens word hieruit gelezen alsof het een bestand is.
Dus ik probeer dat ook:
Delphi:
1
2
3
4
5
6
7
8
| sa.nLength := SizeOf(TSecurityAttributes); sa.bInheritHandle := true; sa.lpSecurityDescriptor := nil; if CreatePipe(hPipeRead, hPipeWrite, @sa, 0) then begin PeekNamedPipe( hPipeRead, nil, 0, nil, @bytes_waiting, nil); end; |
Maar der blijkt geen data te zijn, bytes_waiting = 0. Ik zal wel wat fout doen of iets missen maar ik zou niet weten wat. Op internet kan ik niets vinden en de docs van redmon zijn ook weinig behulpzaam. Iemand die weet hoe ik de printer output moet opvangen of me een stap in de goeie richting kan duwen?