venerdì 6 novembre 2015

.Net creazione di un file PDF tramite VB.Net e C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_generare-file-pdf-in-net-vbnet-e-c_1417.aspx

In questo articolo vedremo come generare un file PDF tramite la tecnologia .Net, in particolare con il linguaggio di programmazione VB.Net e C#.
Per generare i file Pdf utilizzeremo la libreria iTextSharp scaricabile dal seguente sito http://sourceforge.net/projects/itextsharp/
Una libreria che offre proprietà e metodi per generare file PDF.
Gli esempi di codice che vedremo si possono utilizzare sia per l’ambiente Web che per applicazioni di tipo Windows Application.
Creazione di un progetto
Si crea un progetto di tipo Windows Application oppure Web Application per il linguaggio di programmazione quello di interesse al lettore.
Dopo aver creato il progetto, aggiungere il riferimento alla libreria ITextSharp, in modo che possiamo gestire le varie classi per la generazione dei file PDF.
Aggiungiamo nella nostra pagina o form un pulsante il quale genera il file pdf composto da un logo, da un titolo e del testo.
Stesura del codice
Passiamo in visualizzazione codice aggiungiamo lo spazio dei nomi per la gestione dei file pdf.
Qui di seguito si riporta l’esempio di codice per entrambi i linguaggi.


VB.Net

Imports iTextSharp.text

Imports System.IO

Imports iTextSharp.text.pdf



C#

using iTextSharp.text;

using iTextSharp.text.pdf;

using System.IO;




Tramite le classi Document, PdfWriter generiamo il documento impostando le dimensioni ed il testo all’interno del file, mentre tramite i le classi fontFactory impostiamo il tipo di font, con la classe Paragraph impostiamo il testo.
Qui di seguito il frammento di codice per l’ambiente web per entrambi i linguaggi.


Web

VB.Net

Protected Sub BtnGenera_Click(sender As Object, e As EventArgs) Handles BtnGenera.Click

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

 

        Dim output = New MemoryStream()

 

 

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

 

        Documento.Open()

 

 

 

        Dim logo = iTextSharp.text.Image.GetInstance(Server.MapPath("Img/logs.png"))

 

 

        logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT

 

 

        Documento.Add(logo)

        Documento.Add(Chunk.NEWLINE)

 

        Documento.Add(Chunk.NEWLINE)

        Dim titleFont = FontFactory.GetFont("Arial", 20, iTextSharp.text.Font.BOLD)

        Dim ParTitolo As New Paragraph("Titolo", titleFont)

 

        ParTitolo.Alignment = iTextSharp.text.Element.ALIGN_CENTER

 

 

        Documento.Add(ParTitolo)

        Dim ParTesto As New Paragraph("Testo")

        Documento.Add(ParTesto)

 

 

        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 BtnGenera_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();

 

        var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("Img/logs.png"));

 

        logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT;

 

 

      

        Documento.Add(logo);

        Documento.Add(Chunk.NEWLINE);

 

        Documento.Add(Chunk.NEWLINE);

        var titleFont = FontFactory.GetFont("Arial", 20, iTextSharp.text.Font.BOLD);

        Paragraph ParTitolo = new Paragraph("Titolo", titleFont);

 

        ParTitolo.Alignment = iTextSharp.text.Element.ALIGN_CENTER;

 

 

        Documento.Add(ParTitolo);

        Paragraph ParTesto = new    Paragraph("Testo");

        Documento.Add(ParTesto);

        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();

 

 

        }

  

Windows Application:

 

VB.Net

Private Sub BtnGenera_Click(sender As System.Object, e As System.EventArgs) Handles BtnGenera.Click

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

 

 

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

 

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

 

        Documento.Open()

 

        Dim logo = iTextSharp.text.Image.GetInstance("E:\LogoAngoloDelComputer.jpg")

 

        logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT

 

 

      

        Documento.Add(logo)

        Documento.Add(Chunk.NEWLINE)

 

        Documento.Add(Chunk.NEWLINE)

        Dim titleFont = FontFactory.GetFont("Arial", 20, iTextSharp.text.Font.BOLD)

        Dim ParTitolo As New Paragraph("Titolo", titleFont)

 

        ParTitolo.Alignment = iTextSharp.text.Element.ALIGN_CENTER

 
        Documento.Add(ParTitolo)

        Dim ParTesto As New Paragraph("Testo")

        Documento.Add(ParTesto)

 

 

        Documento.Close()

 

 
    End Sub

 
C#

private void BtnGenera_Click(object sender, EventArgs e)

        {

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

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

 

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

 
        Documento.Open();

 
       var logo = iTextSharp.text.Image.GetInstance("E:\\LogoAngoloDelComputer.jpg");


        logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT;

     

        Documento.Add(logo);

        Documento.Add(Chunk.NEWLINE);

 

        Documento.Add(Chunk.NEWLINE);

        var titleFont = FontFactory.GetFont("Arial", 20, iTextSharp.text.Font.BOLD);

        var ParTitolo = new  Paragraph("Titolo", titleFont);

 
        ParTitolo.Alignment = iTextSharp.text.Element.ALIGN_CENTER;

 
        Documento.Add(ParTitolo);

        Paragraph ParTesto = new    Paragraph("Testo");

        Documento.Add(ParTesto);

         Documento.Close();

        }

 

Conclusioni
L’articolo ha voluto fornire in maniera introduttiva il lettore alla generazione dei file in formato pdf, nel creare un semplice file composto dal testo ed immagine. La libreria gratuita iTextSharp con le numerose classi permette una flessibilità e gestione dei file pdf in maniera professionale ed ottimale.

giovedì 5 novembre 2015

free ebook develop

x-ebook


Dal seguente sito http://www.syncfusion.com/resources/techportal/ebooks potete scaricare diversi ebook in lingua inglese, riguardante la programmazione.
I manuali, riguardano diversi linguaggi e tecnologie.





mercoledì 4 novembre 2015

FT: Rivista e community sugli animali



A volte scrivo fuori tema, che non hanno a che vedere con il tema di questo blog. A volte sono sulla vita privata a volte di altro argomento.
In questo post, vi segnalo una rivista, molto interessante ed una community in cui si parla di animali, davvero ben fatta.
Il sito PetFamily, qui http://www.petfamily.it il sito, è una community in cui si trovano tanti articoli, notizie, ed annuncio sugli animali domestici.
Inoltre c'è la possibilità di ricevere una copia omaggio di questa rivista, che invitiamo di leggere visto che è fatta molto bene.

Ho ricevuto la rivista del mese di ottobre, e devo dire che è fatta benissimo.
Per riceverla gratuitamente, basta collegarsi http://www.petfamily.it/iscrizioni.html al seguente sito.

Un sito molto importante per coloro che hanno animali domestici.

martedì 3 novembre 2015

Evento Microsoft Future Decoded

FutureDecoded

Appuntamento imperdible per tutti gli sviluppatori e sistemisti che vogliono scoprire le novità del mondo Microsoft.
Il 12 novembre 2015, si terrà l'evento "Future Decoded" http://www.microsoft.com/italy/futuredecoded/ presso l'auditorium della Musica di Roma.

Durante l'evento si parlerà delle opportunità delle novità del mondo Microsoft.

Insomma un evento imperdibile.

lunedì 2 novembre 2015

Effettuare ricerche di testo nel web per verificare se è copiato

Oggi vi segnalo un sito molto interessante ed utile, soprattutto per coloro che scrivo sul web.
Il seguente sito https://www.plagtracker.com/upload/ permette di effettuare una ricerca sul web, nel caso che vogliamo verificare se il testo che abbiamo scritto (una porzione consistente esempio 6 righe) è stato copiato in altri siti.
Una volta, copiato nell'area di ricerca, tramite il pulsante "Start Cheching" verrà effettuata una ricerca su internet, con i risultati sulla destra del sito.
Un valido sito.

domenica 1 novembre 2015

Windows Phone rilevare la posizione tramite C# e VB.Net

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_windows-phone-81-rilevamento-della-posiz_1394.aspx


In questo nuovo articolo sulla programmazione di Windows Phone 8.1 tramite l’ambiente di sviluppo Visual Studio 2013 express per Windows, vedremo in maniera introduttivo la gestione del rilevamento della posizione, il tutto con il linguaggio di programmazione VB.Net e C#.
Creazione del progetto
Si crea un nuovo progetto per Windows Phone 8.1, applicazione vuota.
Nell’interfaccia grafica, inseriamo tre caselle di testo, ed un pulsante, il tutto come riportato in questo frammento di codice di tipo XAML.


    <Grid>

        <Button Content="Button" HorizontalAlignment="Left" Margin="20,24,0,0" VerticalAlignment="Top" Click="Button_Click"/>

        <TextBox HorizontalAlignment="Left" Margin="25,90,0,0" TextWrapping="Wrap" Name="textLatitudine" Text="" VerticalAlignment="Top" Width="350"/>

        <TextBox HorizontalAlignment="Left" Margin="25,145,0,0" TextWrapping="Wrap" Name="textLongitudine" Text="" VerticalAlignment="Top" Width="350"/>

        <TextBox HorizontalAlignment="Left" Margin="25,195,0,0" TextWrapping="Wrap" Name="textPosizione" Text="" VerticalAlignment="Top" Width="350"/>

 

    </Grid>

A questo punto, dobbiamo rendere il tipo di applicazione abilitata al rilevamento della posizione.
Nel file “Package.appManifest”, facciamo click sulla paginetta “Funzionalità” e poi mettiamo la spunta sulla voce “Percorso”, il tutto come mostrato in figura 1.



Figura 1 - le impostazione per settare la posizione.

Stesura del codice

Passiamo in visualizzazione codice, in particolare nell’evento click.
Prima di tutto, dobbiamo inserire lo spazio dei nomi, per la geolocalizzazione.
Qui di seguito il frammento di codice



VB.Net

Imports Windows.Devices.Geolocation

C#

using Windows.Devices.Geolocation;


A livello di classe oppure nell’evento click si crea un oggetto di tipo “Geolocator” che ci permette di gestire il posizionamento.


VB.Net

Dim geo As Geolocator = Nothing

C#

Geolocator geo = null;

Mentre nell’evento click scriviamo il seguente codice che rileva la latitudine, longitudine e l’accuratezza.


VB.Net

  Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)

 

        If geo Is Nothing Then

            geo = New Geolocator()

        End If

 

        Dim pos As Geoposition = Await geo.GetGeopositionAsync()

 

        textLatitudine.Text = "Latitudine: " + pos.Coordinate.Point.Position.Latitude.ToString()

        textLongitudine.Text = "Longitudine: " + pos.Coordinate.Point.Position.Longitude.ToString()

        textPosizione.Text = "Posiione: " + pos.Coordinate.Accuracy.ToString()

    End Sub

C#

private async void Button_Click(object sender, RoutedEventArgs e)

        {

            if (geo == null)

            {

                geo = new Geolocator();

            }

 

            Geoposition pos = await geo.GetGeopositionAsync();

            textLatitudine.Text = "Latitudine: " + pos.Coordinate.Point.Position.Latitude.ToString();

            textLongitudine.Text = "Longitudine: " + pos.Coordinate.Point.Position.Longitude.ToString();

            textPosizione.Text = "Posiione: " + pos.Coordinate.Accuracy.ToString();

       

        }


Se facciamo click sul pulsante, provandolo sull’emulatore o sul dispositivo fisico, vedremo che verranno valorizzate le caselle di testo con i valori rilevati.

Conclusioni

L’articolo ha voluto fornire al lettore una semplice introduzione al rilevamento della posizione, utilizzando le classi messi a disposizione dal Framework.
La gestione della posizione può tornare utile e si può utilizzare in vari contesti. Con le nuove classi ed il nuovo ambiente di sviluppo Visual Studio 2013 e versione successive, la creazione di applicazioni in ambito mobile è stato notevolmente sempliicato.