c# printen van HTML docs naar verschillende printers

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Beste,

Ik heb een applicatie welke HTML documenten schrijft in een map.
Nu wil ik dat deze automatisch uitgeprint worden door de server.
Echter elk bestand moet d.m.v een prefix P1_timestamp.html / P2_timestamp.html naar een andere printer worden gestuurd.

Nu heb ik een C# programma gemaakt welke een webbrowser control gebruikt en op de DocumentCompleted event de print method aanspreekt. (Dit werkt prima als alles via 1 printer loopt)
Echter meerdere printers krijg ik niet voor elkaar.

Ik set voordat ik ga printen via winspool.drv de SetDefaultPrinter en maak een nieuwe webbrowser control aan.
Echter hij blijft naar de 1e geselecteerde printer sturen.

Nu las ik een stukje over de PrintTemplateTeardown event afvangen.
Maar ik krijg dat niet voor elkaar

Ik dacht heel simpel het volgende te doen.
C#:
1
2
3
4
5
6
7
_wb = new WebBrowser();
_wb.DocumentCompleted += HandleDocumentCompleted; (Hierin handel ik de print actie af)
var b = _wb.ActiveXInstance as SHDocVw.WebBrowser;
if(b!=null) {
     b.PrintTemplateTeardown += HandlePrintTemplateTearDown; (Deze wordt nooit gefired omdat b NULL blijft)
 }
_wb.navigate(_file);


Iemand enig idee of misschien een heel andere optie om dit mogelijk te maken.
Breek er een beetje mijn nek over 8)7

Acties:
  • 0 Henk 'm!

  • xzaz
  • Registratie: Augustus 2005
  • Laatst online: 11-09 12:49
Er zijn 4 stappen:
- Document ophalen
- Beschikbare printers ophalen
- Beslissen welk document naar welke printer moet
- Printen

Pagina's die je wegwijs maken: printen van ms en andere pagina's
Is het een standaard app? Of een web app?

Schiet tussen de palen en je scoort!


  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Ik heb de ExtendedWebBrowser nu gebruikt.
Weer jammer natuurlijk dat PrintTemplateTeardown niet geimplementeerd was, maar dat lijk ik voor elkaar te hebben.

Van de 4 stappen heb ik ze nu in principe allemaal. En meer
-HTML documenten komen in een map te staan
-FileWatcher checkt op nieuw documenten
-Stukje code beslist welke printer het naar toe moet
-Set via spool.drv welke printer default printer wordt
-Document wordt geladen in browser element.
-Document complete wordt gehandeld en print opdracht verstuurd
-Document PrintTemplateTeardown wordt gehandeld alvorens ik een nieuwe default printer SET en browser element dispose.

Toch blijf ik erbij dat ik het geen top oplossing vindt. Ik kan de code schijbaar niet in een service draaien vanwege die browser element die ik nodig heb, en iedere keer de default printer instellen vindt ik ook redelijk onnodig.
Echter ik kom er met PrintDocument er niet uit.

Niet toevallig iemand die eerder met dit bijltje heeft gehakt?