Archive for gennaio 2018

Fare sempre attenzione alle email

Posted on 19 gennaio 2018. Filed under: Senza categoria |

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.

 

Virus2

 

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.

Annunci
Leggi l'articolo intero | Make a Comment ( None so far )

Visualizzare file PDF all’interno di applicazioni WPF

Posted on 19 gennaio 2018. Filed under: Senza categoria |

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.

image

image

 

 

image

 

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:

image

 

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.

 

image

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:

image

 

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

Posted on 18 gennaio 2018. Filed under: Senza categoria |

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:

 

image

Applicazione WPF

 

image

Applicazione UWP

 

image

Applicazione UWP

Leggi l'articolo intero | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...