Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Leggere documenti XPS con Windows Presentation Foundation

Ebbene... eccoci alla prima vera pubblicazione dedicata a Windows Presentation Foundation, con un piccolissimo esempio di codice che è servito prima a me per capirci qualcosa di più! ;-) 

In un altro post si è parlato del nuovo formato di documenti introdotto da Microsoft con .NET 3.0, il formato XPS che si propone come alternativa al PDF al fine di consentire la portabilità dei documenti da un computer all'altro senza la necessità di applicazioni aggiuntive per visualizzarli, ma solo grazie a componenti installati nel sistema operativo. Il .NET Framework 3.0 permette di gestire da codice tali documenti attraverso l'implementazione del namespace System.Windows.Xps.

Se volete provare il seguente esempio di codice, vi serve un documento XPS. Se avete Windows Vista potete aprire un documento di Word e utilizzare i comandi per la stampa (il writer di documenti XPS è una stampante virtuale). Se avete Windows XP, dovete prima scaricare e installare l'XPS Essentials Pack, poi seguire lo stesso procedimento.

Con Windows Presentation Foundation, è davvero molto semplice realizzare un visualizzatore di questi file. Supponiamo di avere a disposizione un documento .XPS già pronto e di volerlo visualizzare in una finestra.

Dopo aver creato un nuovo progetto di tipo WPF Application, è necessario inserire un controllo DocumentViewer nella finestra interessata. In questo piccolo esempio, si supponga di avere una sola finestra. Giusto per addentrarci un pochino nel nuovo, invece di aggiungere il controllo trascinandolo dalla toolbox, si può utilizzare il seguente codice XAML:

<Window x:Class="Window1"
    xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WindowsApplication1" Height="300" Width="300"
    >
  <DockPanel LastChildFill="True">
    <DocumentViewer Name="DocumentViewer1" DockPanel.Dock="Top"></DocumentViewer>
  </DockPanel>
</Window>

Questo codice permette di inserire nella finestra Window1 un controllo DocumentViewer, il quale è contenuto da un controllo DockPanel ed al quale viene assegnato il nome DocumentViewer1, tramite l'attributo Name. Allo stesso, viene assegnato l'allineamento tramite la proprietà DockPanel.Dock.

Per quanto riguarda il file di code-behind (quanto mi piace questo termine...:D ), ossia il file di codice che gestisce i comportamenti dell'applicazione, per semplicità ho utilizzato il seguente codice all'interno dell'evento Loaded della classe Window1 (simile all'evento Form_Load di Windows Forms) e che presuppone una direttiva Imports System.Windows.Xps.Packaging:

 

Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded

    Dim documentName As String = "C:\MioDocumento.xps"

    Dim xpsDoc As XpsDocument

    xpsDoc = New XpsDocument(documentName, IO.FileAccess.ReadWrite)

    DocumentViewer1.Document = xpsDoc.GetFixedDocumentSequence

End Sub

 

In C# lo stesso risultato si ottiene così (presupponendo una direttiva using System.Windows.Xps.Packaging):

string documentName = "C:\\MioDocumento.xps";

XpsDocument xpsDoc;

xpsDoc = new XpsDocument(documentName, System.IO.FileAccess.ReadWrite);

DocumentViewer1.Document = xpsDoc.GetFixedDocumentSequence();

 

L'oggetto XpsDocument rappresenta il file da leggere e la variabile xpsDoc ne riceve l'istanza. Il metodo GetFixedDocumentSequence legge il contenuto del documento e lo visualizza nel controllo DocumentViewer.

In realtà, i documenti XPS possono essere anche molto complessi in quanto possono contenere miniature e firme digitali, pertanto per gestire (e anche creare) da codice questo tipo di documento è bene approfondire lo studio sul namespace System.Windows.Xps, qualora vogliate crearvi il vostro visualizzatore personalizzato.

Più che altro questo voleva essere un piccolo esempio di codice, utile in primo luogo a me per mettere in pratica le prime nozioni di WPF e spero anche per voi, in modo da incuriosirvi verso questo interessante mondo! :-)

Ovviamente, e come sempre, i suggerimenti di coloro che hanno già esperienza di WPF sono particolarmente graditi!

Alessandro

Print | posted on lunedì 9 luglio 2007 20:17 |

Powered by:
Powered By Subtext Powered By ASP.NET