none
Incruster un flux PDF dans une webpart (sans faire référence à une URL) RRS feed

  • Question

  • Bonjour,

    J'ai un système externe qui me génère un contenu PDF et je souhaiterais afficher ce contenu dans une webpart. Comment puis-je procéder sachant que je ne veux pas écrire ce contenu dans un fichier et y faire référence via une URL mais fournir directement les données PDF à un contrôle (lequel ?) situé dans le webpart. ?

    Merci votre aide,

    EG

    • Déplacé Hengzhe Li mardi 21 février 2012 06:53 merge forum (Origine :Développement Sharepoint 2010)
    vendredi 10 juin 2011 07:49

Réponses

Toutes les réponses

  • Bonjour,

    il vous faut faire appel à un composant externe capable de lire le contenu d'un fichier PDF.

    Je vous propose de développer une WebPart pilotant le composant externe.

    Cette WebPart :

    • Expose une propriété PDFUrl permettant à l'administrateur du site d'indiquer l'URL du document PDF
    • Pilote le composant de lecture PDF
    • Affiche le contenu du document PDF dans la méthode RenderContent()

    Vous trouverez un exemple de code pilotant un tel composant de lecture PDF ici : http://studentclub.ro/lucians_weblog/archive/2011/05/19/14851.aspx

    Il existe pas mal de composants réalisant ce genre de choses. Je vous recommande de consulter ceux mentionnés sur cette page : http://jadn.co.uk/w/ReadPdfUsingCsharp.htm


    Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/

    lundi 13 juin 2011 13:38
    Modérateur
  • Bonjour, Chinka1,

     

    Est-ce que vous avez testé la solution proposée ? Merci pour partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

     

    Cordialement,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mercredi 15 juin 2011 06:17
  • Vérifie d'abord si "ton outil externe qui génère le pdf" n'offre pas des possibilités d'intégration avec SharePoint, de plus en plus d'outils proposent cette option.
    SharePoint lover.
    mercredi 15 juin 2011 12:53
  • Bonjour Chinka

    Est-ce que l'outil générant les PDF est capable de "servir" le flux binaire et de positionner des headers HTTP indiquant le flux "inline". Celà permettrai de faire simplement une "iframe" appellant ce service. Cette iframe peut etre générée avec tout simplement le "page viewer webpart". Bien sûr celà ne fonctionne que si un reader PDF est installé sur le poste client...

    Au pire, vous pouvez développer un handler ashx qui sert de passerelle avec votre générateur de pdf.

    Le handler prend en entrée une url avec des arguments lui permettant d'utiliser le générateur de PDF, de trouver le bon fichier pdf par exemple. En sortie il envoi le tableau binaire du pdf et positionne les header http :

    context.Response.AddHeader("Content-Disposition", "inline; filename=afilename.pdf");
    context.Response.AddHeader("Content-Length", sizeOfPdfStream));
    context.Response.ContentType = "application/pdf";
    context.Response.Write(buffer); //buffer est le byte[] du pdf
    


    Et donc il ne restera plus qu'à utiliser le pageviewer webpart pour appeller votre ashx avec les bon parametres...

    Cependant je vous conseille fortement de déployer cet ashx au sein du serveur sharepoint afin d'eviter les problème de "ré authentification" pour l'utilisateur... 

    jeudi 16 juin 2011 07:15