none
Meilleur article de 15.05.2010-15.06.2010 RRS feed

  • Discussion générale

  • Introduction

    Dans SharePoint 2010 on a une API qui transforme les documents en miniatures PNG ou JPG, pour peu que vous ayez installé les Office Web Applications. Cette API est utilisée par l'accès Mobile pour fournir un aperçu du document sur pocket pc ou sur tout appareil mobile.

    L'utilisation de ce service est aussi faite par le moteur de recherche FastSearch :

    Dans cette page de résultat on a la miniature des documents trouvés qui s'affiche. Si on utilise Fiddler pour voir ce qui transit entre le serveur et le client on voit comment sont récupérées les images et on est orienté sur la technologie qui est utilisé.

    Les 4 handlers qui seront utiles pour avoir les miniatures de documents Word ou Powerpoint seront :

    1. MobileDocHandler.ashx
    2. MobilePageHandler.ashx
    3. MobilePresentation.ashx
    4. MobileSlideInfo.ashx

    Le cas Word

    Si on regarde dans l'aide de l'api on a ce diagramme :

    GetMobileDoc fait partie du Handler MobileDocHandler, et GetMobilePageImage et GetMobilePageXml font parties de l'handler MobilePageHandler.

    MobileDocHandler.ashx

    Commençons par MobileDocHandler. Comme tout handler l'utilisation du handler se fait par appel vers une URL avec des paramètres définis qui orientent sur la méthode à appeler. La méthode ici en l'occurrence est la méthode GetMobileDoc qui est appelé avec une URL du style :

    http://srvmoss/_layouts/MobileDocHandler.ashx?doc=/Shared%20Documents/Articulation.docx

    Lorsqu'on va sur cette URL un Fichier XML est téléchargé :

    L'ouverture de ce fichier donne deux URL :

    MobilePageHandler.ashx

     

    La première URL est un lien sur la méthode GetMobilePageXml. Cette méthode renvoie un fichier XML qui donne les informations sur le document on doit ajouter à la fin de l'url « &n=p_1_10.xml » comme on voit dans le fichier xml n correspond aux pages qu'on souhaite avoir, avec p_1_10 on demande les pages de 1 à 10.

    Voici le résultat de l'appel à l'url :

    Dans ce fichier XML l'élément LT donne la première page avec du contenu du document. Ici c'est la page 2. Regardons donc l'appel à la deuxième url qui fait afficher le document :

    Ici on est sur la page 1, comme vous voyez cette page n'est pas très loquace par rapport a notre document. Dans le fichier XML on devait pointer sur la page 2. Voici le résultat :

     

    Le cas PowerPoint

    Le diagramme de l'api dans la documentation est le suivant :

    GetMetadataXml fait partie de MobilePresentation, GetSlideInfoXml fait partie de MobileSlideInfo et GetSlideImage de MobileSlideImage.

    MobilePresentation.ashx

    L'appel a MobilePresentation se fait en appelant le paramétre PresentationID :

    http://srvmoss/_layouts/MobilePresentation.ashx?presentationID=/shared%20documents/anatomy.pptx

    L'appel à cette URL retourne un fichier XML avec les informations pour récupérer les données du document et les miniatures.

    MobileSlideImage.ashx

    Dans le fichier XML on a les informations dont on a besoin pour récupérer les images. A la fin de l'URL de l'élément p :SlideImage on ajoute l'imageid la taille et la hauteur :

    Conclusion

    Un exemple de ce qu'on peut faire est le coverflow. J'ai fait une application silverlight qui utilise l'api des miniatures dont voici le screenshot:

     

    Bien entendu beaucoup d'application sont possibles.

    VANNESTE Xavier
    http://www.xvanneste.com
    http://media.xvanneste.com
    http://blogs.developpeur.org/xvanneste

    • Fractionné Alex Petrescu mardi 15 juin 2010 12:48 meilleur article
    • Déplacé Hengzhe Li mardi 21 février 2012 07:03 merge forum (Origine :Développement Sharepoint 2010)
    mardi 18 mai 2010 20:36
    Auteur de réponse

Toutes les réponses