2010-01-28 3 views
7

J'ai un flux de mémoire qui contient un fichier PDF.Démarrer le processus à partir du flux

Est-il possible de visualiser le PDF sans l'enregistrer sur le disque dur? Process.Start() prend seulement un chemin et pas un flux.

Merci

+0

Voir ce post associé d'hier: http://stackoverflow.com/questions/2144744/open-in-memory-xml-string-as-an-excel-workbook-with-out-saving-uisng-windows- pour/2144775 # 2144775 – Jay

Répondre

9

seulement en mettant en place votre propre système pseudo-fichier dans C#, montage en quelque sorte cela comme un disque dans Windows, et l'avoir intercepter le fichier ouvert et le flux le contenu de votre MemoryStream. Absolument 100% ne vaut certainement pas la peine.

1

S'il y a, processus.Start ne sera pas le chemin, mais je risque de deviner qu'il n'y a pas. Sauf s'il y a une API PDF spécifique qui permet de quelque façon (je doute) je l'enregistrer sur le disque.

3

Vous pouvez créer un RAM drive et lui écrire le flux, de cette façon vous le gardez toujours en RAM (en supposant que les opérations sur le disque soient ce qui vous inquiète).

2

Bien sûr, c'est certainement possible. Juste pas via Process Start et Adobe Reader (je suppose que vous invoquez Adobe ou quelque chose de similaire)

Si vous utilisez .NET ou Java, vous devez simplement trouver un composant de visionneuse PDF, il y a beaucoup de choix, google will vous donner beaucoup de liens, Gnostice en a un bon, mais c'est cher. Une fois que vous avez trouvé un contrôle approprié, affichez le PDF directement depuis votre application.

+0

J'étais sur le point de suggérer quelque chose comme ça. Trouver un composant d'affichage PDF (si vous pouvez automatiser Reader lui-même, d'autant mieux) et voir s'il peut charger à partir d'un IStream. –

Questions connexes