Impressão com Silverlight 4

Impressão com Silverlight 4 


Neste artigo será demonstrado como acessar o dispositivo de impressão com Silverlight. A API do Silverlight permite imprimir: o que está na tela, o conteúdo selecionado e múltiplas impressões.

A classe PrintDocument, presente no namespace System.Windows.Printing fornece capacidades de impressão a partir de um aplicativo Silverlight.  Para abrir uma caixa de diálogo de impressão deverá usar o método Print .

 Para especificar o conteúdo para impressão, é preciso utilizar o evento PrintPage.  Você pode imprimir o controle Silverlight todo, definindo a propriedade do PrintPageEventArgs
 PageVisual para “root” do conteúdo Silverlight.  Alternativamente, você pode imprimir uma parte do controle Silverlight definindo  PrintPageEventArgs PageVisual  colocando somente o UIElement que você deseja imprimir 
 
Após o evento PrintPage ocorrer, o será enviado para a impressora a ser impresso.  Se o conteúdo é grande demais para caber na PrintableArea,  ela será cortada.  Se o HasMorePages propriedade é verdadeira, o evento PrintPage ocorrerá várias vezes até o HasMorePages ser falsa. 
 
Use o evento BeginPrint para realizar um tratamento especial e  o EndPrint para limpar ou para detectar erros que ocorreram durante o processo de impressão com a propriedade EndPrintEventArgs. Erro.

Exemplo


O exemplo de código a seguir mostra um manipulador de eventos do botão que chama o método print  e um manipulador de eventos para o PrintPage. 

Neste exemplo, o usercontrol "MainPage" será impresso.

namespace AppPrint

{

    public partial class MainPage : UserControl

    {

        PrintDocument _print = null;

        public MainPage()

        {

            InitializeComponent();

            btnImprimir.Click += new RoutedEventHandler(btnImprimir_Click);

            _print = new PrintDocument();

            _print.PrintPage += new EventHandler<PrintPageEventArgs>(_print_PrintPage);

           

        }

         void _print_PrintPage(object sender, PrintPageEventArgs e)

        {

            e.PageVisual = this;

        }

        void btnImprimir_Click(object sender, RoutedEventArgs e)

        {          

            _print.Print("Imprimindo Documento");

        }

    }

}


Aplicação

 






 


blog comments powered by Disqus

NewsLetter

Por favor preencher os campos.
Quer receber artigos?


Receber em HTML?