2010-03-05 16 views
0

J'essaie de trouver un moyen d'imprimer un document qui est stocké en tant que BLOB sans avoir à l'ouvrir, le nom de fichier est stocké ainsi j'ai l'extension du fichier disponible. La seule idée que j'ai eu est de l'enregistrer dans le dossier temporaire des utilisateurs et de pointer la classe PrintDocument vers celle-ci, mais je suis sûr qu'il y a une meilleure façon de le faire.

Merci à tous ceux qui contribuent.Imprimer un document BLOB

+0

Voulez-vous réellement imprimer la source du fichier? Quel genre de fichier est-ce? Si c'est grand c'est beaucoup d'arbres. Si vous voulez réellement imprimer un format de fichier correctement (comme une image ou un document), vous devrez l'exécuter à l'aide d'un logiciel capable de l'interpréter. –

+0

@ AndrewM Je veux imprimer quel que soit le document, donc si c'est un fichier .doc il va imprimer comme un document Word, si c'est un .jpg il va imprimer une image etc ... – Chiefy

Répondre

0

puisque vous avez le nom de fichier, vous pouvez essayer d'utiliser ShellExecute pour imprimer le fichier. vous devriez l'enregistrer dans un endroit temporaire, cependant.

Je pense aussi qu'il ne serait pas très différent de l'utilisation de PrintDocument, car il utilise également l'action d'impression par défaut pour le type de fichier. Aussi, je pense que vous devrez l'épingler.

+0

J'espérais éviter d'enregistrer le fichier à un emplacement temp, de cette façon obtiendrait les mêmes résultats que l'utilisation de PrintDocument, mais serait un travail plus dur sûrement? – Chiefy

+0

Je pense que ce serait mieux sur le plan des performances, puisque vous serez pinvoking de win32 api. ce sera plus facile s'il est fait à partir de vC++. mais commodité, il serait préférable de coller avec PrintDocument (surtout si vous êtes en C# ou VB). Je ne pense pas que vous auriez le choix, cependant, parce que pour imprimer un document, vous devez savoir comment l'imprimer: - via son type de fichier et en utilisant les actions par défaut, comme vous le faites déjà - ou en ouvrant le application utilisée pour le créer – maranas

+0

Ok merci pour votre aide, j'imagine que PrintDocument est un peu comme im en C#. – Chiefy