Segnalo molto volentieri un nuovo User Group dedicato al mondo .Net, tutto romano, come si può facilmente cogliere dal nome:
DotNetromaCesta
"DotnetRomaCestà il primo User Group di Roma dedicato alla tecnologia Microsoft .Net. Lo scopo di quest'associazione è quella di creare un punto di riferimento per la città di Roma e per tutti gli appassionati ed utilizzatori di questa tecnologia, un modo per confrontarsi e scambiarsi le proprie esperienze. L'User Group nato dalla passione di persone, ha il compito di fornire materiale formativo, quali articoli e trucchi nonché notizie e di promuovere una serie di attività culturali e formativi volte ad accrescere la conoscenza di questa materia. Gli eventi, che intende svolgere il gruppo, far si che quest'associazione non è solo virtuale ma anche reale, permettendo in questo modo un contatto diretto con tutti i partecipanti della comunità e non."
Fanno sempre piacere iniziative di questo tipo, quindi non mi resta che fare ad Emanuele Mattei e staff un grande in bocca al lupo.
Labels
- .Net Framework 3.5 (7)
- Asp.Net 1.1 (21)
- Asp.Net 2.0 (44)
- Asp.Net 3.5 (23)
- Asp.Net Ajax (6)
- Asp.Net MVC (4)
- Biztalk (2)
- Blend (5)
- C# (26)
- css (10)
- DB2 (3)
- Framework 1.1 (10)
- Framework 2.0 (9)
- IE 7.0 (5)
- Interop Office (2)
- javascript (29)
- Library (11)
- Links (19)
- LINQ (1)
- Micro Framework (2)
- Microsoft (57)
- Microsoft Expression (3)
- Mobile (14)
- Office (9)
- Oracle (1)
- Photosynth (3)
- PowerShell (6)
- Regular Expression (2)
- Sharepoint 2007 (8)
- Silverlight (34)
- SQL Server 2000 (6)
- SQL Server 2005 (5)
- SQL Server 2008 (3)
- Tools (34)
- varie (46)
- VB.NET (19)
- Virtual Earth (10)
- VS 2003 (6)
- Vs 2005 (12)
- VS 2008 (20)
- VS 2010 (1)
- web (48)
- Windows (3)
- Windows Media Center (4)
- Workflow Foundation (14)
- WPF (20)
Tuesday, April 7, 2009
.Net tra gladiatori
Sunday, April 5, 2009
Pdf in Deep Zoom
Etichette: C#, Silverlight, web, WPFQuesto post, come molti altri del mio blog, nasce da una domanda sorta all’interno dell’ufficio. Nella fattispecie la domanda riguarda la possibilità di proteggere alcuni documenti in formato pdf da eventuali modifiche, stampa, copie ecc e consentire all’utente solo la visualizzazione di quest’ultimi all’interno di un’applicazione web.
Ebbene a parte l’impossibilità di una cosa del genere nel senso che, se il documento deve giungere alla macchina dell’utente per essere letto, allora è possibile eseguire qualsiasi operazione compreso eliminare protezioni e quindi modificarlo, tra le diverse idee che ho cercato di far “passare” c’è quella di convertire il/i pdf in immagini (una per pagina) per poi darle in pasto ad un “componente” per la visualizzazione Flash o per rimanere in ambito Microsoft: Silverlight.
Certo anche in questo modo un utente potrebbe sempre eseguire dei print screen (quindi poterlo stampare facilmente) e con un semplice software di OCR convertire il testo in caratteri ASCII.
Oltre all’OCR, per la modifica… le vie dei programmi di fotoritocco sono infinite.
Ovviamente come avrete capito non c’è una procedura che assicuri un’assoluta protezione in questo preciso scenario, ma si può solo rendere più o meno complessa l’operazione di “recupero”.
Ma ritorniamo all’idea. Per raggiungere lo scopo i passi da seguire sono essenzialmente due:
1) trasformare il documento pdf in immagine (jpg, bmp, ecc).
2) creare un progetto con Deep Zoom Composer
Il primo passo si può compiere in innumerevoli modi, per esempio scaricando uno dei tanti programmi (basta eseguire una semplice ricerca con Google) che consentono di convertire pdf in altri formati.
Oppure se si preferisce esistono anche servizi web che svolgono tale compito, giusto per citarne uno (NB: non ho fatto prove in merito):
youconvertit
Personalmente ho seguito un’altra strada, cioè:
1) ho convertito il file pdf in formato Xps utilizzando i driver di stampa Microsoft XPS Document Writer. Su sistemi Windows Vista non è necessario installare nulla mentre per chi possiede Windows XP o Windows Server 2003 è necessario il Framework 3.0 e Microsoft XPS Essentials Pack.
A questo punto per generare il documento Xps è sufficiente attivare la finestra di stampa e selezionare la stampante virtuale Microsoft XPS Document Writer e cliccare su stampa.
2) Convertire a sua volta, il documento Xps, in n immagini, una per ogni pagina. Per tale compito ho pensato di creare un semplice “programmino” WPF composto dalle seguenti righe di codice:
1: XpsDocument xpsDocument = new XpsDocument( @"path xps", System.IO.FileAccess.Read);
2: FixedDocumentSequence documentSeq = xpsDocument.GetFixedDocumentSequence();3: int pageCount = documentSeq.DocumentPaginator.PageCount;
4: for (int i = 0; i < pageCount; i++)
5: { 6: DocumentPage docPage = documentSeq.DocumentPaginator.GetPage(i); 7: 8: RenderTargetBitmap render = new RenderTargetBitmap((int)docPage.Size.Width,
9: (int)docPage.Size.Height, 96, 96, PixelFormats.Default);
10: render.Render(docPage.Visual); 11: 12: FileStream stream = new FileStream( @"path" + i.ToString() + ".jpg",
13: FileMode.Create);14: JpegBitmapEncoder encoder = new JpegBitmapEncoder();
15: encoder.Frames.Add(BitmapFrame.Create(render)); 16: encoder.Save(stream); 17: }
Per poter compilare il codice bisogna aggiungere all’applicazione WPF la reference all’assembly ReachFramework:
ed inoltre aggiungere la direttiva:
1: using System.Windows.Xps.Packaging;
Il codice come già accennato in precedenza non fa altro che prendere il documento Xps, ciclare sulle pagine che lo compongono, e per ognuna di questa generare un file immagine con estensione .jpg.
A questo punto ci possiamo dedicare al secondo passo del tutorial, cioè quello di creare un progetto con Deep Zoom Composer.
Dopo aver installato il programma possiamo creare un nuovo progetto:
Tramite l’apposito pulsante AddImage inseriamo le immagini generate in precedenza:
Al termine dell’importazione si può iniziare a disporre come meglio preferiamo le immagini.
Tramite il pulsante Export possiamo pubblicare il lavoro indicando il tipo di output (Images, Silverlight Deep Zoom, Seadragon Ajax), un nome e il percorso in cui eseguire il salvataggio:
Per questo tutorial ho scelto come tipologia Silverlight Deep Zoom.
Con l’esportazione viene generata una cartella Name + ProjectWeb con tutto il necessario alla pubblicazione.
PS: le immagini che si possono notare in Deep Zoom sono tratte dal catalogo Francorosso su Cina e Giappone.
Monday, March 30, 2009
Link .Net #18
Etichette: Asp.Net 2.0, Asp.Net 3.5, Asp.Net MVC, Blend, javascript, Links, Silverlight, WPFEccoci nuovamente con un nuovo appuntamento della rubrica Link .Net:
MIX'09: Silverlight 3 Beta, Expression Blend 3 Preview e Internet Explorer 8
| Una completa overview degli annunci più importanti fatti in occasione del Mix ‘09 per quanto riguarda Silverlight 3 (attualmente in beta) e la preview della nuova versione di Expression Blend 3. |
Utilizzare editor JavaScript con ASP.NET: TinyMCE
| Su HTML.it, un’interessante articolo di Marco Minerva su come utilizzare, nei propri siti in Asp.Net, l’editor TinyMCE. |
Creating an Ajax Login Form With jQuery
| Tutorial su come creare un login sfruttando jQuery in un’applicazione Asp.Net MVC. |
Search Engine Optimization for Silverlight Applications
Search Engine Optimization for Silverlight Applications – Part 2
| Interessante articolo sull’utilizzo dei .NET RIA Services per implementare una strategia SEO. |
Perceptor: An artificially intelligent guided navigation system for WPF
| Daniel Vaughan ha pubblicato su CodeProject un’articolo (con codice sorgente) su un sistema di navigazione guidata per WPF. Ebbene il sistema in base all’esperienza scaturita dall’osservazione delle precedenti navigazioni dell’utente, suggerisce un grafo navigazionale. Consigliatissimo!!! |
Sunday, March 29, 2009
Tuesday, March 24, 2009
Mix'09: tutti i video
Etichette: Microsoft, varie
Sono disponibili per il download tutte le sessioni degli interventi al Mix'09:
Mix Videos
