C# Xls2PDF

venerdì 27 maggio 2011 - 17.28
Tag Elenco Tags  C#  |  .NET 4.0  |  Visual Studio 2010

utente Profilo | Junior Member

Ciao a tutti.
Qualcuno conosce il metodo per creare dei ".pdf" partendo da dei file ".xls" già esistenti? (senza fare installare una stampante virutale all'utilizzatore del programma)
Ho trovato in rete soltanto delle librerie per la creazione di PDF ma non per "conversione" da xls.
Grazie per l'interessamento.

PS. Sto sviluppando in C# con .NET 4

freeteo Profilo | Guru

Ciao,
il problema è che i file xls sono di excel, quindi il viewer di questo tipo di file (Excel, Open Office e non so se ce ne siano altri) dovrebbe essere loro a creare il pdf, perchè sanno "decodificare" quanto scritto nel file stesso e presentarlo a video.
Ecco il motivo per cui PdfCreator esiste lui dice sostanzialmente io ricevo uno spool di stampa (un formato standard che i vari programmi mandano alla stampante) e da questo (che appunto è un formato praticamente uguale per tutti) genero un pdf.

Togliendo l'utilizzo di questo pacchetto, che è utilizzabile anche da riga di comando, ma cmq necessita di una stampante virtuale installata, l'unica maniera è leggere quel file xls, e andando ad analizzarlo via codice, generare un pdf tu da codice.
In sostanza, potresti accedere al file in qualche modo (oledbconnection, visual studio for office etc...) e farti poi un pdf da codice tramite ITextSharp...la cosa è difficile da fare,soprattutto per le parti grafiche, io onestamente, ci rinuncerei se i file sono complessi potresti non riuscire

Quindi, a mio avviso, una stampante come PdfCreator o cmq una stampante che stampi su file e poi tramite GhostScript andare a generare il pdf, sono strade che ti consiglierei di tenere in considerazione...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

utente Profilo | Junior Member

Grazie delle risposta.
Mi sa che mi devo accontentare :D, quindi potrebbe andarmi bene la stampante virtuale a queste condizioni:
1) che sia installabile direttamente con il setup del mio programma
2) in caso di aggiornamento della stampante (vedi aggiornamenti di PdfCreator) il sistema rimanga funzionante.
3) rimanga trasparente la stampa tramite stampante virtuale (non necessario, l'importante è che non ci siano interazioni con l'utente)
4) che mi venga ritornato nel programma un risultato del tipo "stampa riuscita" o "stampa fallità" perchè devo avvertire della mancata stampa e prendere delle decisioni.

freeteo Profilo | Guru

>Grazie delle risposta.
di niente figurati


>Mi sa che mi devo accontentare :D
a volte bisogna


>la stampante virtuale a queste condizioni:
>1) che sia installabile direttamente con il setup del mio programma
su questo non sono esperto, ti dico però che per semplificarmi la strada faccio apparire nel setup una mia maschera di .net, dove posso farmi tutte le operazioni che desidero, come ho scritto qui:
http://blogs.dotnethell.it/freeteo/Far-apparire-una-Form-.net-durante-il-deploy-con-Windows-Installer__15332.aspx


>2) in caso di aggiornamento della stampante (vedi aggiornamenti
>di PdfCreator) il sistema rimanga funzionante.
questo non credo sia un problema


>3) rimanga trasparente la stampa tramite stampante virtuale (non
>necessario, l'importante è che non ci siano interazioni con l'utente)
in che senso "trasparente"?


>4) che mi venga ritornato nel programma un risultato del tipo
>"stampa riuscita" o "stampa fallità" perchè devo avvertire della
>mancata stampa e prendere delle decisioni.
questo non saprei di preciso.
Ricordo però che se fai un riferimento all'exe di pdfcreator (è un rif. COM), ti da l'evento di quando ha stampato...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

utente Profilo | Junior Member

>>1) che sia installabile direttamente con il setup del mio programma
>su questo non sono esperto, ti dico però che per semplificarmi
>la strada faccio apparire nel setup una mia maschera di .net,
>dove posso farmi tutte le operazioni che desidero, come ho scritto
>qui:
>http://blogs.dotnethell.it/freeteo/Far-apparire-una-Form-.net-durante-il-deploy-con-Windows-Installer__15332.aspx
Grazie, prenderò spunto quando arriverò a creare il pacchetto finito (che sta diventando un miraggio :D )


>>2) in caso di aggiornamento della stampante (vedi aggiornamenti
>>di PdfCreator) il sistema rimanga funzionante.
>questo non credo sia un problema
Questo l'ho chiesto perchè una persona mi ha detto che il suo sistema soffre di questo problema. Quando aggiorna PDFCreator non gli funziona più il suo codice. (Nota: non ho visto il codice che ha generato)


>>3) rimanga trasparente la stampa tramite stampante virtuale (non
>>necessario, l'importante è che non ci siano interazioni con l'utente)
>in che senso "trasparente"?
Intendo che non ci siano interazioni tra l'utente e il processo di stampa (tipo selezionare la cartella di destinazione, dare un nome al file)


La bella notizia è che probabilmente riesco a rimuovere dal processo il file .xls quindi posso creare il mio pdf con strumenti del tipo iTextSharp
http://sourceforge.net/projects/itextsharp/

freeteo Profilo | Guru

>La bella notizia è che probabilmente riesco a rimuovere dal processo
>il file .xls quindi posso creare il mio pdf con strumenti del
>tipo iTextSharp http://sourceforge.net/projects/itextsharp/
ottima dll questa, l'ho usata spesso e fa il suo lavoro egregiamente...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5