2017-03-29 4 views
1

Existe-t-il un moyen d'ouvrir une présentation à partir d'un flux, d'un fichier de mémoire ou d'un stockage isolé?Ouverture d'un document à partir d'un flux

J'ai un fichier de présentation que je veux ouvrir dans PowerPoint, mais je ne veux pas permettre à l'utilisateur d'accéder au fichier lui-même. Malheureusement, la fonction Presentations.Open() de PowerPoint (et Open() de toutes les autres applications Office) accepte uniquement un paramètre path, ce qui signifie que je dois enregistrer le fichier quelque part sur le disque puis l'ouvrir dans PowerPoint, ce qui donnera l'accès au fichier.

Quelqu'un at-il fait cela dans une application Office?

+0

Serait-il suffisant d'ouvrir le fichier à partir d'une URL (celle qui n'est pas exposée à l'utilisateur)? Cela laisserait toujours un fichier temporaire sur le disque dur de l'utilisateur, au moins pour la durée d'ouverture de la présentation, éventuellement plus longue, donc peut-être pas acceptable. –

+0

@SteveRindsberg: Oui, ce fichier temporaire n'est pas acceptable. Les applications Office affichent toujours le chemin des documents dans Office Backstage (onglet Informations), ce qui rend très trivial de savoir où il se trouve. – dotNET

Répondre

0

Vous pouvez utiliser OpenXML SDK pour open documents from a stream, mais pas à partir d'une application Office. Mais, si vous êtes suffisamment motivé, vous pouvez supprimer le fichier après sa fermeture. C'est assez simple, il suffit de créer un processus séparé et d'attendre que le fichier ne soit plus verrouillé pour l'écriture. Ou, si vous savez quand il est fermé (par exemple si vous faites le code de fermeture), vous n'avez pas besoin d'un processus séparé.

+0

Cependant, lorsque le fichier est ouvert dans l'application, l'application Office affiche toujours son chemin, ce qui facilite la copie. – dotNET

+0

Vous avez raison. Vous ne pouvez pas les empêcher de le copier. Si le Powerpoint que vous ouvrez est un modèle/document VSTO, vous pouvez définir des propriétés de document ou des variables pour que le document se ferme automatiquement s'il n'a pas été ouvert de la manière approuvée, mais il existe également des solutions. Il n'y a vraiment aucun moyen de le contrôler complètement. – Chris