[VB.NET08] PrintPageEventArgs

lunedì 22 settembre 2008 - 15.55

brazero Profilo | Junior Member

Ciao,

tempo fa ho creato una classe di stampa per una winapp (prendendo come spunto l'articolo che ho visto qui su dotnethell: http://www.dotnethell.it/articles/PrintWindowsForms.aspx),
il fatto è che devo fare la migrazione su una applicazione web.. ma in questa classe uso come parametro per la funzione di stampa un oggetto "System.Drawing.Printing.PrintPageEventArgs".. ho provato in tutti i modi ma NON SO COME INIZIALIZARLO dato che vuole come parametro per il costruttore:

Dim graphics As Graphics ' The Graphics used to paint the item Dim marginBounds As Rectangle ' The area between the margins Dim pageBounds As Rectangle ' The total area of the paper Dim pageSettings As PageSettings ' The PageSettings for the page Dim instance As New PrintPageEventArgs(graphics, _ marginBounds, pageBounds, pageSettings)

Qualcuno sa quali siano le proprietà da assegnare a questi oggetti?

GRAZIE

Brainkiller Profilo | Guru

Prima di rispondere alla domanda volevo fare alcune considerazioni.
Secondo me il codice che hai scritto per le WinForm non è portabile nel Web. Primo perchè se stampi qualcosa viene stampato sul server e non sul client (o forse gli mandi al tuo client una Bitmap ?), secondo perchè il rendering della pagina web viene fatto dal Web ed è molto complicato per via dei CSS, ecc.ecc. quindi cosa pensi di poter ottenere ? Magari se fornisci ulteriori dettagli inquadro meglio la tua richiesta.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

brazero Profilo | Junior Member

ho paura che sia propio così, che la stampa sia fatta dal lato server ...
cmq provo a spiegarmi meglio...

ho bisogno di stampare un elenco telefonico, avevo costruito una funzione per un'applicativo che come parametro aveva un datatable e un oggetto PrintPageEventArgs, e che appunto mi lanciava la stampa in modo molto semplice dei nominativi contenuti nel datatable..
adesso avrei la necessità di fare la stessa cosa da web, o sia stampare l'elenco telefonico e pensavo di usare quella classe li.. poi l'elenco telefonico non è fisso dato che l'utente può filtrare..
io sono alle prime armi nella programmazione e certi concetti ancora mi sfuggono..

GRAZIE

Brainkiller Profilo | Guru

>ho paura che sia propio così, che la stampa sia fatta dal lato
>server

Cioè tu sei a casa tua, navighi su questo sito, stampi una cosa, e la stampata esce nel luogo in cui c'è il server, e come fai a ritirarla ? Scusa ma mi sembra alquanto strano.

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

freeteo Profilo | Guru

concordo con quanto detto da Brainkiller, tant'è che i vari tool di reportistica come Crystal/SqlReporting renderizzano html, dato che cmq il tuo browser interpreta solo quello (e javascript ovviamente).

Quindi secondo me l'unica cosa sensata da fare è generare un documento pdf con ItextSharp(http://itextsharp.sourceforge.net), disegnando quello che devi dentro li, quindi usando i suoi metodi, le sue proprietà etc...e poi redirigere il browser su quel file, in modo che venga scaricato (o aperto) dall'utente finale.

Meglio ancora se vuoi, usare un HttpHandler che ti genera il pdf in memoria e poi farlo tornare nello stream di output, ma è 1po più complessa come soluzione, vedo più facile la prima...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

brazero Profilo | Junior Member

>Cioè tu sei a casa tua, navighi su questo sito, stampi una cosa,
>e la stampata esce nel luogo in cui c'è il server, e come fai
>a ritirarla ? Scusa ma mi sembra alquanto strano.

hahaha.. infatti è giustamente quello che NON voglio fare!!!
ok, quindi non va bene la mia funzine con propietà di stampa (printDocument) per l'web giusto??






>concordo con quanto detto da Brainkiller, tant'è che i vari tool
>di reportistica come Crystal/SqlReporting renderizzano html,
>dato che cmq il tuo browser interpreta solo quello (e javascript
>ovviamente).
>
>Quindi secondo me l'unica cosa sensata da fare è generare un
>documento pdf con ItextSharp(http://itextsharp.sourceforge.net),
>disegnando quello che devi dentro li, quindi usando i suoi metodi,
>le sue proprietà etc...e poi redirigere il browser su quel file,
>in modo che venga scaricato (o aperto) dall'utente finale.
>
>Meglio ancora se vuoi, usare un HttpHandler che ti genera il
>pdf in memoria e poi farlo tornare nello stream di output, ma
>è 1po più complessa come soluzione, vedo più facile la prima...
>ciao.

il fatto è che per motivi di licenza devo per forza usare VisualStudio Express, e quindi i tool di reportistica non sono integrati (e non li ho mai usati).. ho dato un'occhiatina a itextsharp e sinceramente adesso mi viene da piangere dato che per uno che programma in vb da poco fare un lavoro del genere in c# è tutt'altro che facile..


GRAZIEEEEEE
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5