aleborgMedlem sedan jan. 20013 341 inlägg Jag har gjort ett program som hämtar all information via en webservice på en server.
I programmet finns en form som visar en faktura, fakturan är ihopsatt av labels och pictureboxes placerade på en panel, dessa kontroller skrivs ut via printdocument och det funkar fint, fakturan ser ut som den ska. Formen tar emot ett datasett + några variabler för att generera fakturan.
Men...
Jag vill kunna skriva ut den här fakturan på serverns skrivare och inte klientens lokala skrivare.
Följande problem har uppstått:
- Tyvärr kan man inte via webservicen eller den tillhörande business layern öppna en form på servern.
- En bild skulle kunna genereras på klienten och skickas till webservicen som sen skriver ut bilden, men tyvärr blir kvaliten så dålig på bilden så det går inte att använda. Jag har provat med gif, jpg, tiff, png och bmp, samma resultat på alla. Koden som genererar bilden är samma som används för att skicka allt till skrivaren men kvaliten blir inte ens i närheten lika bra.
Hur ska jag lösa detta egentligen? Kan inte komma på nått bra sätt att lösa det på :(
GladhMedlem sedan maj 20012 812 inlägg Det går säket att lösa på något sätt. Dock så är min hållning att man inte skall blanda in sådan saker i sin webservice eller ASP.NET sida.
Jag skulle ha löst det på följande sätt istället.
- Skapa en annan webservice som tar emot en klass som innehåller alla information om din faktura, och spara den i en databas.
- Ha en NT-Service eller applikation på servern som kontrollerar i databasen (intervall eller events) att det kommit ny data.
- Låt sedan denna NT-Service eller applikation skriva ut sidan på en printer.
Du har nu avdelat de olika ansvarsområdena till olika komponenter som blir lättare att bytat ut/förändrar om behovet uppstår. Du har även fått den fördelen att du kan flytta din applikation till en annan server om du nu önskar avskilja din webserver från resten av huset, eller om själva printfunktionen tar extremt mycket prestanda!!!
Samt om du skriver din applikation generell så kan du enkelt stoppa in andra "mallar" och klasser som skall skrivas ut, alltså blir det enkelt för dig att skriva ut något annat med samma applikation, typ en orderbekräftelse eller något...
- M
aleborgMedlem sedan jan. 20013 341 inlägg Webservicen är låst till vissa IP:n så det är iofs ingen fara men det är ju aldrig fel att dela upp saker och ting.
Hade hoppats på att slippa skapa en service eller applikation för detta, hade varit smidigt att slippa det och få saker att hända i realtid.