martedì 9 febbraio 2016

Il primo volume del ebook gratuito del Dottore dei computer

Torna con nuovi articoli e nuova veste grafica, il tecnico informatico di Milano, il famoso Dottore dei Computer, che da qualche giorno ha pubblicato un ebook gratuito, con tantissimi trucchi sul mondo tecnologico.
L'ebook, in formato pdf, si può scaricare gratuitamente dal seguente sito http://www.ildottoredeicomputer.it/2016/01/21/il-dottore-dei-computer-in-pdf-volume-1/ ed è composto da oltre 100 pagine.
Essendo un ebook gratuito, l'autore, non chiede nulla, ma chi vuole può fare una libera donazione alla Fondazione ANT, a cui l'autore di questo interessante ebook sta a cuore.
Complimenti al Dottore dei Computer, per questo manuale e per il nuovo sito.

giovedì 4 febbraio 2016

javascript set select value

Nel caso che vogliamo selezionare un valore di una casella combinata in Javascript, in ambito Html (tag html Select) tramite la proprietà value possiamo impostare la selezione.
Qui di seguito un frammento di codice.
document.getElementById('NomeCasella').value = "VALORE";

martedì 2 febbraio 2016

javascript convert date object to string json

Se ci troviamo in un pagina Aspx, e vogliamo convertire la proprietà di un oggetto, che è di tipo Date Object in string, dobbiamo convertire il tutto numero e poi data.
In ambito Json, il valore che viene visualizzato è /Date(numero)/ il quale non può essere convertito in data.
Dobbiamo prendere il valore numerico e convertirlo in data.
Qui di seguito un frammento di codice di esempio.
var MiaDAta = new Date(parseInt(DataDaJson.substr(6)));

lunedì 1 febbraio 2016

.Net rilevare le immagini in un file Pdf C# e VB.Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_net-estrapolare-immagini-da-un-file-pdf-_1437.aspx


A volte può capitare che dobbiamo estrapolare delle immagini da un file PDF, in questo articolo vedremo tramite il linguaggio di programmazione Visual Basic .Net e C#, come rilevare e salvare sul proprio pc file di tipo jpeg, contenente l’immagine che si trova nel file PDF.
Per la gestione dei file PDF, utilizzeremo la libreria gratuita ITextSharp che permette un ottima gestione dei file PDF.
Si crea un progetto di tipo “Windows Application” tramite il linguaggio di vostro interesse, a questo punto nella form inseriamo un pulsante, nell’evento click del pulsante andremo ad elaborare il file PDF.
Aggiungiamo al progetto il riferimento alla libreria ItextSharp.
Stesura del codice
Passiamo in visualizzazione codice, in modo che possiamo elaborare il file “Pdf”.
Aggiungiamo i riferimenti per la gestione dei file Pdf ed immagine.



VB.Net

Imports iTextSharp

Imports iTextSharp.text.pdf

Imports System.IO

Imports System.Drawing.Imaging

Imports iTextSharp.text.pdf.parser

 

 

C#

using iTextSharp;

using iTextSharp.text.pdf;

using System.IO;

using System.Drawing.Imaging;

using iTextSharp.text.pdf.parser;


Nell’evento click scriviamo il nome della funzione nel quale si trova il codice per l’elaborazione del file.
Qui di seguito il frammento di codice.



VB.Net

Private Sub BtnEstrai_Click(sender As System.Object, e As System.EventArgs) Handles BtnEstrai.Click

        EstraiImmagine("E:\MioFilePDF.pdf")

    End Sub

 

 

C#

private void BtnEstrai_Click(object sender, EventArgs e)

        {

            EstraiImmagine(@"E:\MioFilePDF.pdf");

 

        }



Naturalmente va cambiato il percorso e nome del file che si vuole elaborare.
La funzione “EstraiImmagine” avrà lo scopo di elaborare il file PDF, tramite le classi “PdfDictionary”, “PdfReader” in particolare rilevare la risorsa nella prima pagina che viene indicato nel metodo “GetPageN”.
Tramite la classe “ImageRenderInfo” otteniamo il riferimento all’immagine, o meglio l’oggetto che possiamo salvare nel nostro pc.
Qui di seguito le suddette operazioni per entrambi i linguaggi.




VB.Net

Private Sub EstraiImmagine(percorsoFilePdf As String)

        Try

            Dim FilePdf As PdfReader = New PdfReader(percorsoFilePdf)

            'Leggo la prima pagina

            Dim pagina As PdfDictionary = FilePdf.GetPageN(1)

            'estrapolo gli oggetti

            Dim risorsa As PdfDictionary = CType(PdfReader.GetPdfObject(pagina.Get(PdfName.RESOURCES)), PdfDictionary)

 

            Dim oggetti As PdfDictionary = CType(PdfReader.GetPdfObject(risorsa.Get(PdfName.XOBJECT)), PdfDictionary)

 

            Dim NomeFile As String = "immagine"

            'Ciclo per ogni immagine ed estrapolo tutte le immagini della prima pagina

            Dim contatore As Integer = 1

 

            For Each nome As PdfName In oggetti.Keys

 

                Dim Immagine As PdfObject = oggetti.Get(nome)

                If Immagine.IsIndirect() Then

 

                    Dim pdfDictionary As PdfDictionary = CType(PdfReader.GetPdfObject(Immagine), PdfDictionary)

 

                    Dim width As String = pdfDictionary.Get(PdfName.WIDTH).ToString()

                    Dim height As String = pdfDictionary.Get(PdfName.HEIGHT).ToString()

                    Dim ImmagineOttenuta As ImageRenderInfo = ImageRenderInfo.CreateForXObject(New Matrix(Single.Parse(width), Single.Parse(height)),

                        CType(Immagine, PRIndirectReference), pdfDictionary)

                    SalvaImmagine(ImmagineOttenuta, NomeFile & contatore & ".jpeg")

                    contatore += 1

                End If

 

 

            Next

 

 

 

 

 

        Catch ex As Exception

            MessageBox.Show("Errore: " + ex.Message)

        End Try

    End Sub

 

C#

   private void EstraiImmagine(string percorsoFilePdf)

        {

          

            try

            {

 

                

                PdfReader FilePdf = new PdfReader(percorsoFilePdf);

                //Leggo la prima pagina

                PdfDictionary pagina = FilePdf.GetPageN(1);

                //estrapolo gli oggetti

                PdfDictionary risorsa = (PdfDictionary)PdfReader.GetPdfObject(pagina.Get(PdfName.RESOURCES));

                PdfDictionary oggetti = (PdfDictionary)PdfReader.GetPdfObject(risorsa.Get(PdfName.XOBJECT));

                string NomeFile = "immagine";

                //Ciclo per ogni immagine ed estrapolo tutte le immagini della prima pagina

                int contatore = 1;

                foreach (PdfName nome in oggetti.Keys)

                {

                    

                        PdfObject Immagine = oggetti.Get(nome);

                        if (Immagine.IsIndirect())

                        {

                            PdfDictionary pdfDictionary = (PdfDictionary)PdfReader.GetPdfObject(Immagine);

                            string width = pdfDictionary.Get(PdfName.WIDTH).ToString();

                            string height = pdfDictionary.Get(PdfName.HEIGHT).ToString();

                            ImageRenderInfo ImmagineOttenuta = ImageRenderInfo.CreateForXObject(new Matrix(float.Parse(width), float.Parse(height)),

                                (PRIndirectReference)Immagine, pdfDictionary);

                            SalvaImmagine(ImmagineOttenuta, NomeFile + contatore + ".jpeg");

                            contatore += 1;

                        }

                }

 

            }

            catch (Exception ex)

            {

                MessageBox.Show("Errore: " + ex.Message);

            }

 

            

        }





Siamo giunti alla conclusione del nostro articolo, dobbiamo scrivere il metodo che permette di salvare sul nostro pc l’immagine che abbiamo rilevato dal file Pdf.
Tramite la classe PdfimageObject potremmo gestire l’immagine che abbiamo rilevato dal file PDF, mentre la classe MemeryStream ci permette di trasformare l’oggetto in stream di dati che tramite la classe bitmap possiamo salvare nel nostro pc con il metodo “Save”.
Qui di seguito il frammento di codice di tale operazioni






Vb.Net

Sub SalvaImmagine(renderInfo As ImageRenderInfo, NomeFileDaSalvare As String)

 

        Dim immagineDaPdf As PdfImageObject = renderInfo.GetImage()

        Using immagineDaSalvare As Image = immagineDaPdf.GetDrawingImage()

 

            If immagineDaSalvare IsNot Nothing Then

                Using ms As New MemoryStream()

                    immagineDaSalvare.Save(ms, ImageFormat.Jpeg)

                    Dim Bitmap As Bitmap = New Bitmap(immagineDaSalvare)

                    Bitmap.Save("E:\\" + NomeFileDaSalvare)

                End Using

 

            End If

        End Using

 

 

    End Sub

 

 

C#

private void SalvaImmagine(ImageRenderInfo renderInfo, string NomeFileDaSalvare)

        {

            PdfImageObject immagineDaPdf = renderInfo.GetImage();

            using (Image immagineDaSalvare = immagineDaPdf.GetDrawingImage())

            {

                if (immagineDaSalvare != null)

                {

                    using (MemoryStream ms = new MemoryStream())

                    {

                        immagineDaSalvare.Save(ms, ImageFormat.Jpeg);

                        Bitmap bitMap = new Bitmap(immagineDaSalvare);

                        bitMap.Save("E:\\" + NomeFileDaSalvare);

 

                    }

                }

 

 

                

            }

       

        }






Conclusioni
In questo articolo abbiamo visto come con poche righe di codice possiamo estrae le informazioni contenute in un file Pdf, sul nostro pc. L’articolo può divenire anche una base per la realizzazione di un Software per gestire i file Pdf.
Tramite la parola “Download” è possibile scaricare il file di questo articolo.

martedì 26 gennaio 2016

Crystal Report somma di un campo

Nel caso che dobbiamo effettuare la somma di un campo, possiamo utilizzare la parola chiave di Crystal report "SUM" da utilizzare nelle formule.
Oltre ad indicare il campo su cui effettuare la somma, possiamo anche dire in base a quale campo raggruppare i valori, ossia selezionarli secondo un certo valore.
Qui di seguito si riporta un frammento di codice da utilizzare nella finestra delle formule di Crystal Report.
Sum({@Formula},{NomeTabella.NomeCampo})
come si vede nell'esempio precedente, il primo parametro riguarda una formula che trasforma il campo della tabella in un valore numerico, mentre il secondo, il campo di riferimento su cui raggruppare i dati.

Qui di seguito invece
Sum({Tabella.NomeCampo},{Tabella.NomeCampo})
un esempio, in cui il primo parametro è il campo di tipo numerico ed il secondo il campo di raggupamento.

lunedì 18 gennaio 2016

crystal report is number verificare se un valore è numerico

Nel caso che dovete verificare nella finestre delle formule di Crystal Report, se un valore è numerico oppure no, tramite la funzione IsNumeric(Valore) potete verificare se il valore è un numerico.

Esempio:

If (IsNumeric({NomeTabella.NomeCampo} = True ) then
'Ok Numerico
else
'False no numero


domenica 17 gennaio 2016

Free ebook: Enterprise Cloud Strategy

Enterprise Cloud Strategy















Altro nuovo ebook gratuito offerto da Microsoft Press, questa volta dedicato al mondo Cloud.

Come potete riporto qui http://blogs.msdn.com/b/microsoft_press/archive/2016/01/15/free-ebook-enterprise-cloud-strategy.aspx la possibilità di scaricare un ebook in formato pdf o versione per dispositivi mobili, in lingua inglese, sul mondo Cloud.

Per maggiori informazioni ed altro visitate il sito indicato.

mercoledì 13 gennaio 2016

Sviluppo di applicazioni per Office 2016 .Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_configurazione-office-2016-e-visual-stud_1462.aspx 


In questo articolo vedremo come sviluppare applicazioni per office 2016 in ambiente .Net 2015, ed in particolare tramite Visual Studio 2015. Utilizzeremo la versione di prova di Office 2016 e in ambiente Windows 10.

Prima di tutto dobbiamo installare o scaricare la versione di Office2016, premessa, al momento della stesura di questo articolo la versione trial, per tanto invitiamo le persone ad utilizzarlo su pc di prova, di test, ricordiamo che l’installazione di Office2016 può sostituire ed aggiornare una versione presente, con la conseguenza di perdere la licenza.

Configurazione ambiente di sviluppo

Da questo sito https://products.office.com/it-it/home si può scaricare la versione di prova. Dopo aver fatto doppio click sul file di setup (installazione) verrà avviata l’installazione, nel quale ci fornisce indicazioni sui vari applicativi che verranno installati, il tutto come mostrato in figura 1.


Figura 1 – i programmi che verranno installati.


Durante l’installazione i loghi dei vari prodotti prenderanno colore, e la barra che sta ad indicare l’attuale installazione avanzerà (figura 2)


Figura 2 – L’installazione dei vari applicativi.


A questo punto, una finestra amichevole (figura 3) ci informerà che l’installazione è andata a buon fine e possiamo iniziare ad utilizzare office 2016.


Figura 3 – la finestra dell’avvenuta installazione.


A questo punto se apriamo Visual Studio 2015, non troviamo la voce per sviluppare in ambito office, dobbiamo scaricare il tools per office.
Il programmazione d’installazione si scarica dal seguente sito http://aka.ms/officedevtoolsforvs2015 .
A questo punto facciamo doppio click sul programma d’installazione, verrà avviata un wizard, ossia l’assistenza durante l’installazione.
La prima schermata ci fornisce un riepilogo di ciò che verrà installato (figura 4 ) con le informazioni di download, delle dimensione dell’installazione e tanto altro.


Figura 4 – la finestra che fornisce informazioni sull’installazione.


Se facciamo click sulla voce “Opzioni” (figura 5) viene aperta in cui ci chiede alcune informazioni sull’installazione in particolare se partecipare o no al programma di utilizzo del software ai fini statistici per Microsoft.

Figura 5 – La finestra delle opzioni.


Se vogliamo possiamo togliere la spunta su “Si, Desidero partecipare al programma analisi di utilizzo software”.

Facciamo click sul pulsante “Installa”, verrà avviato il programma di installazione (figura 6 ).



Figura 6 – Installazione dei componenti per lo sviluppo di Office

Se facciamo click sul pulsante “Accetto” verrà avviato il programma d’installazione.

Figura 7 – L’avvio del programma d’installazione.


Al click del pulsante “Installa” verrà avviata l’installazione, che installerà tutti i componenti (figura 8).



Figura 8 – I componenti che verranno installati.

A questo punto avremmo tutti i componenti per sviluppare applicazioni per office.

Creazione della prima applicazione

Apriamo Visual Studio 2015 community e selezioniamo la categoria Office/Sharepoint nel linguaggio di nostro interesse. Tra i modelli presenti, selezioniamo “App per Office”, a questo punto confermiamo il tutto.
Selezionando tale progetto, il programmatore verrà guidato nella creazione di un app per office, nel passaggio successivo, ci verrà chiesto che tipo di applicazione creare il tutto come mostrato in figura 9.


Figura 9 – La scelta del tipo di app.

Le scelte che abbiamo a disposizione sono tre, il riquadro attività, ossia la possibilità di programmare la parte situata nel lato destro, il contenuto, all’interno di un documento di Microsoft Office, e quindi dove si interagisce più spesso, ed infine uno per il programma di posta elettronica.
Lasciamo il valore di default, ossia “Riquadro attività”.
Se facciamo click sul pulsante “Avanti” ci verrà chiesto per quali applicativi di Office, vogliamo creare la nostra app, il tutto come mostrato in figura 10.


Figura 10 - La scelta dell’applicativo su cui vogliamo creare app


Facciamo click sul pulsante “Fine”.
Verrà aperto il progetto con tutti i file. Come si nota, troviamo alcuni file di tipo web, questo perché le app per Office, non sono altro che semplici pagine web. Di default, la pagina che viene creata si chiama home.html, nel quale troviamo le impostazioni per la visualizzazione del riquadro attività.


Figura 11 – la pagina home


Se eseguiamo il programma, ci verrà chiesto se il certificato per la nostra applicazione è attendibile, ossia che certifica l’integrità del nostro programma.
Facciamo click sul pulsante “Si”.

Figura 12 – la finestra di sicurezza per il certificato.


Di conseguenza verrà installato il certificato, e la sicurezza del nostro sistema, ci informa se vogliamo procedere all’installazione di tale certificato, il tutto come mostrato in figura 13.



Figura 13 – L’installazione del certificato.

Dopo aver fatto click sul pulsante “SI”, viene visualizzata una finestra (14 ) che indica che la nostra app, verrà testata su IIS Express, nel caso che abbiamo installato solo come webserver tale dispositivo.

Figura 14 – la richiesta del webserver


Può capitare che durante l’apertura del programma di office (Excel o Word ) venga visualizzata una schermata in cui ci chiede di fare attenzione, la stessa che troviamo nel browser di Internet Explorer quando visitiamo alcuni siti con certificati scaduti o altro.
Facciamo click sulla voce “Continuare con il sito web”.



Figura 15 - La visualizzazione della sicurezza web


A questo punto verrà visualizzata la nostra app in uno dei programma di office



Figura 16 – L’app in esecuzione.

A questo punto non ci resta che eseguire il nostro programma, in particolare, il frammento di codice che troviamo di default durante la creazione.

Conclusioni

La configurazione dell'ambiente di sviluppo sviluppo di Office in ambito App non è complesso, il programmatore troverà la creazione di applicazioni per Office agevolato se proveniente dalla programmazione web, trovandosi il modo di lavoro simile.
Questa nuova architettura di sviluppare app, offre opportunità che ogni programmatore deve valutare, perché si possono realizzare interessanti progetti che possono portare a guadagni. La creazione di app per Office, permetterà di pubblicarli nello store di Office ed avere la possibilità che questi vengono acquistate ed utilizzati sia da aziende che da utilizzatori finali.

martedì 12 gennaio 2016

Crystal Report formula Select Case

Nelle formule delle funzioni di Crystal Report, possiamo utilizzare la parola chiave select case, come avviene per la maggior parte dei linguaggi di programmazione.

Qui di seguito un esempio.

Select {Tabella.Campo}

Case 1,2,3:

"Risultato A"


Case 4 to 9:

"Risultato B"

Case 5

"Risultato C"

Default:
"Nessun Risultato"

lunedì 11 gennaio 2016

C# Calculating MD5 of UTF-8 encoded string

L'esempio qui di seguito, illustra una tecnica nel linguaggio di programmazione C#, di come ottenere un valore MD5 da una variabile di tipo string.

private string GetTextMD5EncodingUtf8(string Testo)
    {
     
        using (MD5 md5Hash = MD5.Create())
        {
            byte[] dati = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(Testo));
            StringBuilder sBuilder = new StringBuilder();
            for (int i = 0; i < dati.Length; i++)
            {
                sBuilder.Append(dati[i].ToString("x2"));
            }
            return sBuilder.ToString();
        }
    }

domenica 10 gennaio 2016

Crystal Report cercare del testo in una stringa tramite la funzione Instr

Nel caso che nelle formule di Crystal Report dobbiamo cercare del testo in un determinato campo possiamo utilizzare la funzione Instr, che passando come parametri, la stringa da esaminare (o campo db) e testo da cercare ci restituisce la posizione.

Qui di seguito un esempio di codice.

if (Instr({Tabella.Campo}, 'Valore')> 0 then
"Trovato"
else
"Non Trovato"

sabato 9 gennaio 2016

.Net Convertire un array di byte in String

Il frammento di codice qui di seguito, illustra una tecnica di come convertire un array di byte in una string.


C#
Byte[] ArrBytes = Metodo();
var MiaVariabile = System.Text.Encoding.Default.GetString(ArrBytes);

VB.Net
Dim ArrBytes() as Byte= Metodo
dim MiaVariabile = System.Text.Encoding.Default.GetString(ArrBytes)

venerdì 8 gennaio 2016

Download Free ebook Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud, Preview Edition
















Un piccolo ma interessante manualetto in lingua inglese da scaricare gratuitamente sulla nuova versione di Sql Server 2016.
Come riportato in questo post http://blogs.msdn.com/b/microsoft_press/archive/2015/12/22/free-ebook-introducing-microsoft-sql-server-2016-mission-critical-applications-deeper-insights-hyperscale-cloud-preview-edition.aspx potete scaricare in formato "Pdf" oppure mobile, un manuale introduttivo alla nuova versione del database di Microsoft.


Che dirvi.... buona lettura....






giovedì 7 gennaio 2016

.Net Generare un file PDF contenente una tabella tramite ItextSharp VB.Net e C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_generare-un-file-pdf-contenente-una-tabe_1419.aspx

In questo articolo vedremo come generare un file “Pdf” tramite la tecnologia .Net sia in ambiente Web che in ambiente Windows Application, utilizzando i due linguaggi di programmazione più utilizzati VB.Net e C#
La generazione del file avviene tramite il componente iTextSharp. che abbiamo visto il relativo utilizzo in un precedente articolo http://www.iprogrammatori.it/articoli/programmazione/art_generare-file-pdf-in-net-vbnet-e-c_1417.aspx

Stesura del codice

Creare un progetto di tipo Web e Windows Application in base al proprio linguaggio di programmazione.
Nella form, aggiungete un pulsante, il quale permetterà di generare una tabella con tre colonne ed un titolo.
Passate in visualizzazione codice, ed aggiungere il seguente spazio dei nomi, ricordando di aver aggiunto tra i riferimenti la libreria "ItextSharp".


VB.Net

Imports iTextSharp.text

Imports iTextSharp.text.pdf

 

C#

using iTextSharp.text;

using iTextSharp.text.pdf;

 

 A questo punto nell’evento click del pulsante dobbiamo scrivere il codice che permette tramite la classe “PdfTable” di creare una tabella, se viene passato un valore di tipo numero, indicherà  il numero delle colonne.
Naturalmente l’oggetto PdfTable contiene diverse proprietà che ci permette di gestire l’allineamento, se visualizzare o no il border, ed altro ancora.
Qui di seguito si riporta il frammento di codice per entrambi i linguaggi e per entrambi l’architettura.

 
Web.

VB.Net

Protected Sub BtnGeneraTable_Click(sender As Object, e As EventArgs) Handles BtnGeneraTable.Click

        Dim Documento As New Document(PageSize.A4, 100, 100, 25, 25)

 

        Dim output = New MemoryStream()

 

 

        'Dim fileStream As New FileStream("E:\test.pdf", FileMode.Create, FileAccess.Write, FileShare.None)

 

        Dim Scrittura As PdfWriter = PdfWriter.GetInstance(Documento, output)

 

        Documento.Open()

 

        'Tabella con tre colonne

        Dim tabella As New PdfPTable(3)

        'dimensione

        tabella.TotalWidth = 550.0F

        'larghezza colonne

        Dim larghezzaColonne As Single() = New Single() {150.0F, 150.0F, 150.0F}

        tabella.SetWidths(larghezzaColonne)

        tabella.HorizontalAlignment = 0  'left

        'titolo

        Dim cellaTitolo As New PdfPCell(New Phrase("Iscritti "))

        cellaTitolo.HorizontalAlignment = 1 'center

        cellaTitolo.Border = 0

        cellaTitolo.Colspan = 3

        tabella.AddCell(cellaTitolo)

        Dim SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD)

        tabella.AddCell(New Phrase("Nome", SottoTitolo))

        tabella.AddCell(New Phrase("Cognome", SottoTitolo))

        tabella.AddCell(New Phrase("Città", SottoTitolo))

        'valorizzo con il  testo

        tabella.AddCell("Emanuele")

        tabella.AddCell("Mattei")

        tabella.AddCell("Roma")

        tabella.AddCell("Marco")

        tabella.AddCell("Maffei")

        tabella.AddCell("Mantova")

 

        Documento.Add(tabella)

 

        Documento.Close()


        Me.Response.BufferOutput = True

        Me.Response.Clear()

        Me.Response.ClearHeaders()

        Me.Response.ContentType = "application/octet-stream"

 

        Me.Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf")

 

        Me.Response.BinaryWrite(output.GetBuffer())

 

        Me.Response.Flush()

        Me.Response.End()

 

    End Sub

 

C#

    protected void BtnGeneraTable_Click(object sender, EventArgs e)

        {

            Document Documento = new Document(PageSize.A4, 100, 100, 25, 25);

 

 

            MemoryStream output = new MemoryStream();

 

 

            PdfWriter Scrittura = PdfWriter.GetInstance(Documento, output);

 

            Documento.Open();

 

            //Tabella con tre colonne

            PdfPTable tabella = new PdfPTable(3);

            //dimensione

            tabella.TotalWidth = 550f;

            //larghezza colonne

            float[] larghezzaColonne = new float[] { 150f, 150f, 150f };

            tabella.SetWidths(larghezzaColonne);

            tabella.HorizontalAlignment = 0; //left

            //titolo

            PdfPCell cellaTitolo = new PdfPCell(new Phrase("Iscritti "));

            cellaTitolo.HorizontalAlignment = 1; //center

            cellaTitolo.Border = 0;

            cellaTitolo.Colspan = 3;

            tabella.AddCell(cellaTitolo);

            var SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD);

            tabella.AddCell(new Phrase("Nome", SottoTitolo));

            tabella.AddCell(new Phrase("Cognome", SottoTitolo));

            tabella.AddCell(new Phrase("Città", SottoTitolo));

            //valorizzo con il  testo

            tabella.AddCell("Emanuele");

            tabella.AddCell("Mattei");

            tabella.AddCell("Roma");

            tabella.AddCell("Marco");

            tabella.AddCell("Maffei");

            tabella.AddCell("Mantova");

            Documento.Add(tabella);

            Documento.Close();

 
           this.Response.BufferOutput = true;

            this.Response.Clear();

            this.Response.ClearHeaders();

            this.Response.ContentType = "application/octet-stream";
            this.Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf");

             this.Response.BinaryWrite(output.GetBuffer());

             this.Response.Flush();

            this.Response.End();

        }


Qui di seguito il codice per lo sviluppo di tipo applicazioni per Windows, ossia desktop.




Windows Application

 

VB.Net

  'Tabella con tre colonne

        Dim tabella As New PdfPTable(3)

        'dimensione

        tabella.TotalWidth = 550.0F

        'larghezza colonne

        Dim larghezzaColonne As Single() = New Single() {150.0F, 150.0F, 150.0F}

        tabella.SetWidths(larghezzaColonne)

        tabella.HorizontalAlignment = 0  'left

        'titolo

        Dim cellaTitolo As New PdfPCell(New Phrase("Iscritti "))

        cellaTitolo.HorizontalAlignment = 1 'center

        cellaTitolo.Border = 0

        cellaTitolo.Colspan = 3

        tabella.AddCell(cellaTitolo)

        Dim SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD)

        tabella.AddCell(New Phrase("Nome", SottoTitolo))

        tabella.AddCell(New Phrase("Cognome", SottoTitolo))

        tabella.AddCell(New Phrase("Città", SottoTitolo))

        'valorizzo con il  testo

        tabella.AddCell("Emanuele")

        tabella.AddCell("Mattei")

        tabella.AddCell("Roma")

        tabella.AddCell("Marco")

        tabella.AddCell("Maffei")

        tabella.AddCell("Mantova")

        Dim Documento As New Document(PageSize.A4, 100, 100, 25, 25)

        Dim fileStream As New FileStream("E:\testTabellavb.pdf", FileMode.Create, FileAccess.Write, FileShare.None)

 

        Dim Scrittura As PdfWriter = PdfWriter.GetInstance(Documento, fileStream)

 

        Documento.Open()

 
        Documento.Add(tabella)

 
        Documento.Close()

 

C#

//Tabella con tre colonne

            PdfPTable tabella = new PdfPTable(3);

            //dimensione

            tabella.TotalWidth = 550f;

            //larghezza colonne

            float[] larghezzaColonne = new float[] { 150f, 150f, 150f };

            tabella.SetWidths(larghezzaColonne);

            tabella.HorizontalAlignment = 0; //left

            //titolo

            PdfPCell cellaTitolo = new PdfPCell(new Phrase("Iscritti "));

            cellaTitolo.HorizontalAlignment = 1; //center

            cellaTitolo.Border = 0;

            cellaTitolo.Colspan = 3;

            tabella.AddCell(cellaTitolo);

            var SottoTitolo = FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD);

            tabella.AddCell(new Phrase("Nome", SottoTitolo));

            tabella.AddCell(new Phrase("Cognome", SottoTitolo));

            tabella.AddCell(new Phrase("Città", SottoTitolo));

            //valorizzo con il  testo

            tabella.AddCell("Emanuele");

            tabella.AddCell("Mattei");

            tabella.AddCell("Roma");

            tabella.AddCell("Marco");

            tabella.AddCell("Maffei");

            tabella.AddCell("Mantova");

 
            Document Documento = new Document(PageSize.A4, 100, 100, 25, 25);

            FileStream fileStream = new FileStream("E:\\testTabella.pdf", FileMode.Create, FileAccess.Write, FileShare.None);

            PdfWriter Scrittura = PdfWriter.GetInstance(Documento, fileStream);

 
            Documento.Open();

 

            Documento.Add(tabella);

 
            Documento.Close();

 








Come si vede dal codice precedente, la classe PdfTable, permette di creare una tabella, che impostando varie proprietà, possiamo definire la larghezza, il bordo, il tipo di carattere etc.
Mentre la classe di tipo "PdfCell" ci permette di gestire le singole celle.
Il metodo "AddCell", crea a sua volta le varie celle con i valori che andremo ad impostare.

Conclusioni

L’articolo ha voluto fornire le basi per la creazione di un file pdf contenente una tabella. L'utilizzo della libreria gratuita ItextSharp, offre al programmatore diverse funzionalità per la manipolazione dei file pdf, oltre che alla creazione dei file. I metodi e proprietà di facile interpretazione, agevolano il lavoro di ogni programmatore.