Un'alternativa ai PDF: i documenti XPS

4 pagine in totale: <<Indietro 1 2 3 [4]

Quando un pacchetto viene generato, solo i caratteri (glyphs) dei font effettivamente utilizzati vengono salvati al suo interno e per fare ciò il motore deve analizzare tutto il documento. Questa politica può risultare dispendiosa con documenti di grandi dimensione, specialmente nelle stampe dove il font viene scritto prima del testo. Il Font subsetting ci permette di controllare questo meccanismo così da decidere se considerare l'insieme di caratteri usati a livello di pagina, di documento o di intero sequence di documenti:

// Indico la policy di font subsetting
writer.SetFontSubsettingPolicy(FontSubsetterCommitPolicies.CommitPerPage);
// Indico il numero di segnali (pagine) deve contare per determinare il subset
writer.SetFontSubsettingCountPolicy(2);

Un altro aspetto importante fornito con XPS è derminato dalla possibilità di memorizzare all'interno di un documento uno o più PrintTicket. Si tratta di una serie di proprietà in XML che indicano come un'intera sequenza di documenti, un singolo documento o una singola pagina devono essere stampati. Possono essere specifiche ad un particolare device, in funzione delle PrintCapabilities, oppure generiche e hanno un loro scope d'azione, a livelli, partendo dalla FixedDocumentSequence fino alla FixedPage. Per esempio possiamo con un PrintTicket a livello di sequenza, specificare che l'intera stampa va effettuata a qualità testuale, mentre una specifica FixedPage, poiché contenente immagini, vada stampata a qualità fotografica. Oppure alcune pagine possono essere specifiche per essere stampate in orizzontale piuttosto che in verticale. Oltre a questo possiamo controllare la risoluzione, i margini, il numero di copie e la dimensione della stampa.
Per sfruttare questa caratteristica dobbiamo creare un oggetto PrintTicket e passarlo al metodo Write dell'XpsDocumentWriter. In alternativa per avere un controllo più granulare possiamo intercettare l'evento WritingPrintTicketRequired

PrintTicket ticket = new PrintTicket();
ticket.OutputQuality = OutputQuality.Text;
ticket.PageOrientation = PageOrientation.Portrait;

writer.Write(paginator.DocumentPaginator, ticket);

Conclusione

In questo articolo abbiamo visto una panoramica di XPS e le funzionalità che questo nuovo formato documentale offre. L'imminente uscita di Windows Vista può favorire la diffusione del suo utilizzo e per noi sviluppatori il .NET Framework 3.0 ci permette da subito e in modo facile di creare documenti, stampare e più in generale gestire i package.
Sebbene spodestare l'attuale re PDF è un'impresa molto difficile, XPS è una buona minaccia che detiene ottime qualità e le carte in regola per offire qualcosa in più. Conviene quindi cominciare a conoscerlo e sfruttarlo anche per le proprie applicazioni, magari solamente per la stampa.

4 pagine in totale: <<Indietro 1 2 3 [4]

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.



TUTORIALS


IN EVIDENZA
MISC