Archive for gennaio 2018
Fare sempre attenzione alle email
Lo ripeterò fino alla nausea, chi segue già i miei corsi lo sa, e dico di prestare attenzione alle email che si ricevono.
Oggi ho ricevuto questa.
Non dovete guardare il nome di chi manda la mail ma l’indirizzo fra le parentesi.
E poi chiedersi: perché entro 24 ore devo aprire l’allegato? Motivi di Privacy? Quali caxxo di motivi sarebbero? E cosa succede dopo le 24 ore?
I pirati informatici cercano di colpire nell’emotività della persona, la quale perde la lucidità e fa quello che gli viene chiesto.
Una email del genere va eliminata, senza alcun dubbio.
Basta poi anche fare una semplice ricerca su internet, per capire che non esiste alcuna Eleanor Sutton che lavora in Dhl.
Leggi l'articolo intero | Make a Comment ( None so far )Visualizzare file PDF all’interno di applicazioni WPF
Anche questa non è una cosa nuova ma può servire magari a programmatori alle prime armi.
Un mio cliente mi ha chiesto che nel gestionale che gli ho sviluppato ci fosse una funzionalità per visualizzare file scanditi con lo scanner.
Poiché la maggior parte degli scanner incorporati nelle stampanti multifunzione creano i documenti in formato PDF, mi serviva qualcosa che visualizzasse quindi i file PDF.
Cercando su Internet ho trovato una libreria veramente facile da implementare.
Il progetto di questa libreria si trova su CodePlex, questo è il link: https://wpfpdfviewer.codeplex.com/
Se pensate vi possa servire, scaricatelo presto, perché Codeplex sta andando a morire, addirittura lo davano in chiusura per il 15/12/2017 anche se ancora è online. Questa è la pagina del blog che ne parla: https://blogs.msdn.microsoft.com/bharry/2017/03/31/shutting-down-codeplex/
Scarichiamo la libreria che la useremo in un nuovo progetto WP di esempio.
Apriamo quindi Visual Studio (qualunque versione va bene), creiamo un nuovo progetto WPF (chiamatelo come volete) e aggiungiamo una Reference alla libreria scaricata. Io ho creato il progetto in VB.NET ma funzionerà anche su un progetto in C# con la dovuta conversione.
Il codice XAML da aggiungere alla Window dove volete far visualizzare il pdf è:
xmlns:WPFPdfViewer="clr-namespace:WPFPdfViewer;assembly=WPFPdfViewer"
Questa riga va aggiunta all’interno del tag <Window>, mentre poi all’interno della Grid o del contenitore dove volete far vedere il pdf il codice da aggiungere è:
<WPFPdfViewer:PdfViewer x:Name="pdfViewer" Grid.Column="1">
</WPFPdfViewer:PdfViewer>
Se provate ora a compilare il progetto vi saranno mostrati degli errori:
Questo perché nella stessa cartella del progetto, bisogna aggiungere altre due librerie: Interop.AcroPDFLib.dll e AxInterop.AcroPDFLib.dll scaricabili anche questo nello stesso pacchetto della libreria principale.
Chiudiamo il progetto, inseriamo i due file e lo riapriamo. Ora riproviamo a compilarlo e vedete che non darà più errori.
Ora nel code-behind dobbiamo aggiungere semplicemente questa riga, con il file pdf da visualizzare:
pdfViewer.LoadFile("C:\3431765765.pdf")
Ovviamente il nome del file può venire dal database, da una TextBox etc. etc. e la riga lo potete mettere in qualunque evento.
Io l’ho messo per test al caricamento della pagina.
Compiliamo ed eseguiamo il progetto ed ecco che il pdf sarà mostrato:
Una cosa non ovvia. Per poter funzionare c’è bisogno che nel pc sia installato Acrobat Reader DC, da qui il link: https://get.adobe.com/it/reader/
Leggi l'articolo intero | Make a Comment ( None so far )Tipi di variabili da WPFF a App Windows Universal Platform
Ho rispolverato un vecchio progetto in WPF e lo sto riscrivendo in Universal Windows Platform.
Il progetto originale includeva delle funzioni Int per convertire i numeri decimali in intero.
La funzione INT in UWP non esiste e io ho usato la funzione cint per convertire i numeri decimali in intero.
Ho visto testando l’App che il risultato non è come me l’aspettavo.
Ho dato per scontato che CINT togliesse al numero decimale la parte dopo la virgola, pensavo che CINT semplicemente troncasse il numero.
Indagando quindi sul perché il risultato era diverso ho scoperto che CINT non tronca il numero decimale ma arrotonda al numero intero più vicino e quindi 20,6 diventa con cint 21 e non 20 come si poteva credere.
La funzione da usare quindi in questo caso è Math.Truncate che serve proprio ad eliminare la parte dopo la virgola senza arrotondare il numero all’intero più vicino.
Può essere che questa sia una cosa risaputa da tempo ma allo scoperto con le mie mani proprio adesso.
Di seguito uno screenshot dell’esempio utilizzato:
Applicazione WPF
Applicazione UWP
Applicazione UWP
Leggi l'articolo intero | Make a Comment ( None so far )