Skip to main content

Come convertire file MS Word DOC e DOCX in PDF con ASP.NET e C#

Chi non ha mai avuto bisogno di convertire uno o più file DOC e/o DOCX da Word in PDF almeno una volta nella vita? Niente di più facile, direte voi: è sufficiente selezionare il formato .PDF nell’apposita casella a discesa che appare subito dopo aver fatto click sul pulsante “Salva Come…”. A dire la verità, non era così facile in passato: questo metodo è infatti disponibile solo a partire da Office 2010; prima di allora, l’unico modo per ottenere questo risultato era utilizzare software appositi – solitamente basati su Ghostscript – o installare driver di stampa PDF come Bullzip, CutePDF e altri.

Office 2010 ha risolto il problema per l’utente medio, ma soltanto a condizione che abbia una valida licenza MS Office e il software installato sulla propria macchina. Chiunque non sia provvisto di queste cose non può far altro che ricorrere alle alternative di cui sopra, o procedere all’acquisto di un software – non necessariamente MS Office – che lo metta in condizione di fare altrettanto.

Il discorso si fa leggermente diverso – e certamente più complicato – per gli sviluppatori che vogliono ottenere lo stesso risultato a livello di codice: esiste un modo semplice e gratuito per convertire file DOC o DOCX in formato PDF all’interno di una applicazione ASP.NET o .NET Core sviluppata in linguaggio C#, possibilmente senza consentire agli utenti il download del file DOC/DOCX originario? E soprattutto, nel caso in cui si tratti di una applicazione web, senza dover acquistare una licenza di MS Office sul server di pubblicazione?

Approfondisci

PasswordCheck – Classe C# per calcolare il livello di sicurezza delle password

Diversi anni fa ho sviluppato questa classe per calcolare il livello di sicurezza delle password inserite dagli utenti in varie circostanze, come ad esempio durante la registrazione di un nuovo account all’interno di una applicazione web. Poiché a distanza di tempo continuo a utilizzarla con regolarità ho deciso oggi di condividerla all’interno di questo post, sperando che possa essere utile anche a qualcun altro.

La classe può essere utilizzata in due modi:

  • Attraverso il metodo generico GetPasswordStrength, che calcola il livello di sicurezza (strength) di una qualsiasi password attraverso una serie di controlli basati sui classici fattori: lunghezza minima, presenza di lettere maiuscole/minuscole, numeri e/o caratteri speciali.
  • Attraverso il metodo IsStrongPassword, che risponde a un criterio più specifico e personalizzato.

Il primo metodo di utilizzo è particolarmente indicato in tutti i casi in cui non sono previste delle policy di controllo specifiche, mentre il secondo si rende necessario ogniqualvolta abbiamo dei controlli obbligatori da effettuare. Personalmente io finisco spesso per utilizzare entrambi: il primo per mostrare all’utente la forza della propria password, il secondo – o una sua implementazione leggermente diversa utilizzando gli helper methods inclusi – per controllare i requisiti minimi previsti e/o richiesti dal committente.

Tutti i metodi utilizzati sono spiegati all’interno della classe, quindi non c’è molto altro da dire: se la classe vi è di qualche aiuto, sentitevi liberi di lasciare un feedback nella sezione “commenti” in basso!

Approfondisci

Istanziare un Dictionary con chiavi Case-Insensitive in ASP.NET C#

Tra le varie classi messe a disposizione da ASP.NET, il Dictionary resta una  di quelle più utilizzate: la sua enorme versatilità compensa ampiamente la relativa inefficienza che si presenta in alcune situazioni, dove l’utilizzo di un Hashtable o di una classe più snella consentirebbe di ottenere prestazioni migliori.

Nella maggior parte dei casi, quando utilizziamo un Dictionary impostando una stringa come chiave (key), la modalità predefinita di confronto tra stringhe prevista dalla classe, che risponde a un criterio case-sensitive – considerando quindi rilevante la differenza tra lettere maiuscole e minuscole all’interno della chiave – può fare al caso nostro:

E così via. Il Dictionary di cui sopra avrà quindi tre diverse entries, ciascuna accessibile mediante la propria chiave case-sensitive specifica.

Vi sono casi, però, in cui questo comportamento predefinito non ci è di grande aiuto: fortunatamente, il costruttore della classe prevede un overload specifico che possiamo utilizzare in tutti i casi in cui vogliamo che il confronto tra le chiavi-stringa risponda a un criterio diverso. Qualora volessimo un confronto case-insensitive, ad esempio, potremmo istanziare la classe nel seguente modo:

Approfondisci

Classe C# per serializzare e deserializzare oggetti in XML e JSON in ASP.NET

A grande richiesta condivido un piccolo helper, realizzato ormai diversi anni orsono, che ancora utilizzo quando ho bisogno di effettuare operazioni di Serialize/Deserialize di oggetti POCO in C#: i formati supportati al momento sono XML e JSON, ovvero i più diffusi e utilizzati in ambito web, ma è possibile estenderla anche ad altri.

Come potrete vedere si tratta di una semplice classe statica che include una serie di “coppie di metodi” per la serializzazione e deserializzazione corrispondente: il primo elemento di ciascuna coppia – quello che si occupa della serializzazione di un oggetto T – è stato implementato in modo tale da poter essere utilizzato anche come  extension method, ovvero partendo direttamente dall’oggetto che si desidera serializzare. Può essere utilizzata all’interno di qualsiasi libreria di classi o anche direttamente inclusa in un progetto Web Forms, Windows Forms, MVC, WebAPI, .NET Core o di qualsiasi altro tipo.

Questo l’elenco dei metodi attualmente implementati:

  • SerializeObject / DeserializeObject
  • SerializeObjectUsingBinaryFormatter / DeserializeObjectUsingBinaryFormatter
  • SerializeToXML / DeserializeFromXML
  • SerializeToJson / DeserializeFromJson

Approfondisci

Classe ASP.NET C# per il controllo e il calcolo formale del Codice Fiscale

Non c’è programmatore italiano (o che abbia lavorato in Italia) che non si sia dovuto cimentare almeno una volta con processi di verifica, calcolo e/o controllo formale del Codice Fiscale: si tratta di un evergreen dello sviluppo software del nostro paese, necessario in qualsiasi contesto che coinvolga la gestione dei dati personali di qualcuno: anagrafiche, flussi, gestionali, strumenti di calcolo economico/finanziario… I campi di applicazione sono pressoché infiniti e tutti, immancabilmente, richiedono prima o poi di svolgere una o più delle summenzionate operazioni.

Per questo motivo, ormai molti anni fa, ho sviluppato una classe in ASP.NET C# che consente di svolgere la maggior parte di queste operazioni. Poiché a distanza di molti anni continuo a utilizzarla moltissimo ritengo che possa essere utile condividerla, nella speranza che possa semplificare la vita di altri colleghi sviluppatori.

Approfondisci

Close