Loupe

Build 2013: Jour 3 – Rendering PDF content in Windows Store apps

La mise à disposition native de mécanisme permettant de lire/afficher du contenu PDF étant une des nouveautés que j’attendais (car je sais que cela est pas mal demandé par nos clients), je ne pouvais ne pas aller à cette session.

WP_20130628_006

L’objectif de Microsoft est d’abstraire toute la complexité au développeur et de proposer des APIs simples. Le focus est mis sur l’affichage du PDF en tant qu’image.

L’API propose un objet PdfDocument avec des méthodes statiques permettant de charger un PDF depuis un fichier PDF depuis un fichier, une Stream, etc. Ensuite, on récupère (via la méthode GetPage), la page qui nous intéresse/que l’on veut afficher. Un appel à la méthode RenderToStreamAsync permet de charger la page, en tant qu’image, dans une Stream.

A partir de là, il ne reste plus qu’à afficher la Stream dans un contrôle Image et le tour est joué: extrèmement simple donc ! Smile

A noter qu’il est également possible d’ouvrir des documents PDF qui sont protégés par mot de passe!

Grâce à la classe PdfPageRenderOptions, il est possible de customiser le rendu de l’image qui sera générée: format de l’image, taille de l’image, la couleur d’arrière plan, la zone à afficher, la résolution, etc.

Bien sûr, étant donné que nous sommes en train de parler d’APIs WinRT, il est possible de les utiliser en XAML et en HTML !

Nous avons ensuite eu droit à tout un ensemble de bonnes pratiques lorsque l’on utilise ces nouvelles APIs de PDF (penser à appeler Dispose, mettre en place de la virtualisation pour n’afficher que les pages qui sont visibles, n’afficher que les portions de la page qui sont nécessaire, etc.).

Il est également possible de faire le rendu du PDF dans une surface DirectX (DxgiDevice, SurfaceImageSource, RenderPageToSurface, etc. Smile)

 

En conclusion: une session rapide mais qui montre bien les possibilités et la simplicité des APIs, ce qui ouvre les yeux sur pas mal de scénarios intéressants que l’on pourrait avoir pour les applications.

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus