In un due recenti post abbiamo visto come convertire file excel e word in formato PDF. La soluzione prevedeva l'istallazione di word/excel 2007 sul server web dove risiede l'applicazione e l'installazione di un add-in scaricabile per salvare i file in pdf.
Al di là del fatto che Microsoft sconsigli al'uso di questa tecnica, ci sono comunque una serie di problemi legati a diritti e autorizzazioni per utilizzare queste funzionalità sul server.
Uno dei principali limiti che c'è nell'uso della soluzione proposta nei precedenti articoli, sta nel fatto che gli applicativi sono strutturati per un utilizzo interattivo e quindi necessitano di un utente che sia loggato sul server.
Inoltre utilizzando COM Interop direttamente da ASP.net, le chiamate vengo effettuate dal'ASP.NET-User (network service) al quale non è consentito di interagire con word.
Per evitare tutti questi problemi, la soluzione più comoda è quella di effettuare le chiamate alla libreria Interop di office utilizzando un programma stand alone che risiede sul server. Ovviamente questo significa avere una sessione aperta sul server, con un utente loggato che faccia girare questo programma.
Questa piccola applicazione pubblica semplicemente dei servizi di conversione file utilizzando la tecnica del Remoting .
La classe RemoteConverter contenente i metodi di conversione, implementa l'interfaccia MarshalByRefObject:
mentre l'applicazione desktop registra ed utilizza questi metodi:
Una volta lanciata l'applicasione desktop sul server, la nostra applicazione web potrà convertire i file con queste poche righe di codice:
Scarica i sorgenti e prova la soluzione!
Alcuni link per approfondire l'argomento:
.Net Remoting
Convert Word-Documents to PDF on an ASP.NET Server
venerdì 14 maggio 2010
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento