Doc Reader [Résolu]

DalMed 10 Messages postés mardi 13 septembre 2005Date d'inscription 22 avril 2009 Dernière intervention - 13 nov. 2006 à 17:53 - Dernière réponse : DalMed 10 Messages postés mardi 13 septembre 2005Date d'inscription 22 avril 2009 Dernière intervention
- 27 nov. 2006 à 01:17
Salut,


Comment je peux construire
une application qui visualise les fichiers .doc avec C#.


C’est urgent !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
DalMed 10 Messages postés mardi 13 septembre 2005Date d'inscription 22 avril 2009 Dernière intervention - 27 nov. 2006 à 01:17
3
Merci
Je trouve que la meilleure solution et d’utiliser le control
ActiveX DsoFramer (http://support.microsoft.com/kb/311765) de Microsoft c’est gratuit et plus stable.

Merci DalMed 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de DalMed
scaryman 492 Messages postés vendredi 30 janvier 2004Date d'inscription 16 mai 2007 Dernière intervention - 13 nov. 2006 à 18:17
0
Merci
Voici un lien qui devrait t'aider
Commenter la réponse de scaryman
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 13 nov. 2006 à 18:26
0
Merci
Sinon tu peux utiliser un des composant du framework : "WebBrowser".

En lui passant l'adresse d'un fichier doc dans sa propriété Url ca devrait te l'ouvrir. Pas forcément très propre mais c'est rapide :)

Par contre, je ne sais pas si le WebBrowser fait partie du framework 1 ou uniquement 2 et +
Commenter la réponse de Nikoui
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 13 nov. 2006 à 18:36
0
Merci
Salut,

Le contrôle WebBrowser ".NET" en tant que tel est disponible à partir de .NET 2.0 mais en .NET 1.1 il suffit de se servir directement du WebBrowser COM en l'ajoutant à sa toolbox (Navigateur Web Microsoft, shdocvw.dll)

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
DalMed 10 Messages postés mardi 13 septembre 2005Date d'inscription 22 avril 2009 Dernière intervention - 13 nov. 2006 à 19:07
0
Merci
J’ai déjà construit une application qui ouvre Ms Word dans
un Contrôle utilisateur mais le problème est que :


- Ms Word doit être installer sur la machine (la même
version d’office chaque fois).


- L’application est trop lourde.



 

J’ai utilisé le lien suivant : http://msdn2.microsoft.com/fr-fr/library/78whx7s6(VS.80).aspx


Alors j'ai pensé à la technique [dico.aspx?mot=WYSIWYG WYSIWYG]([dico.aspx?mot=WYSIWYG http://www.csharpfr.com/dico.aspx?mot=WYSIWYG])

(Les documents doivent
être ouverts en mode lecture seul ou autre selon le type d’utilisateur)



using
System;





using
System.Collections;





using
System.ComponentModel;





using
System.Drawing;





using
System.Data;





using
System.Windows.Forms;






 






using
System.Runtime.InteropServices;





namespace
WinWordControl





{






   
public
partial
class
MSWordControl :
UserControl






    {






        #region
DllImport API






        [DllImport("user32.dll")]






       
public
static
extern
int
FindWindow(string strclassName, string strWindowName);






 







        [DllImport("user32.dll")]






       
static
extern
int SetParent(int
hWndChild, int hWndNewParent);






 







        [DllImport("user32.dll",
EntryPoint = "SetWindowPos")]






       
static
extern
bool SetWindowPos(






           
int hWnd,               //
handle to window






           
int hWndInsertAfter,    //
placement-order handle






           
int X,                  //
horizontal position






           
int Y,                  //
vertical position






           
int cx,                 //
width






           
int cy,                 //
height






           
uint uFlags             //
window-positioning options






        );






 







        [DllImport("user32.dll",
EntryPoint = "MoveWindow")]






       
static
extern
bool MoveWindow(






           
int hWnd,






           

int
X,






           
int
Y,






           
int
nWidth,






           

int
nHeight,






           
bool bRepaint






        );






 







        #endregion






 







        #region
Const






       
const
int
SWP_DRAWFRAME = 0x20;






       
const
int SWP_NOMOVE
= 0x2;






       
const
int SWP_NOSIZE
= 0x1;






       
const
int
SWP_NOZORDER = 0x4;






        #endregion






 







        #region
Variables






       
object missing = System.Reflection.Missing.Value;






       
public
bool loaded = false;






       
private
static Word.ApplicationClass word = null;






       

public

static
int wordWnd =
0;






       
private
static
string lFileName = null;






        #endregion






 







       
public MSWordControl()






        {






           
InitializeComponent();






        }






 







       
~MSWordControl()






        {






           
try







            {






               
if (word != null)






                {






                   
CloseDoc();






                   
CloseWord();






                }






            }






           
catch (Exception ex)






            {






               
throw ex;






            }






        }






       
public
void
LoadWord()






        {






 







           
if (word == null)






            {






               
word = new Word.ApplicationClass();






               
if (wordWnd 0) wordWnd FindWindow("Opusapp", null);






               
if (wordWnd != 0)






                {






                   
SetParent(wordWnd, this.Handle.ToInt32());






                   


try






                    {






                       
NewDoc();






                       
RestoreWord(false);






                       
CloseDoc();






                       
word.Visible = true;






                       
word.Activate();






                       
MoveWindow(wordWnd, 0, 0, this.Bounds.Width,
this.Bounds.Height + 20, true);






                       
SetWindowPos(wordWnd, this.Handle.ToInt32(),
-5, -35, this.Bounds.Width, this.Bounds.Height, SWP_NOMOVE | SWP_DRAWFRAME);






 







                   


}






                   
catch
(Exception ex)






                   
{






                       

throw ex;






                   
}






                   

this.Parent.Focus();






               

}           






          
     loaded = true;






            }






        }






 







       
public
void NewDoc()






        {






           
NewDoc(missing);






        }






       
public
void NewDoc(object template)






       

{






           
word.Application.Documents.Add(ref
template, ref missing, ref
missing, ref missing);






            word.ActiveWindow.DisplayRightRuler
= false;






           
word.ActiveWindow.DisplayScreenTips = false;






            word.ActiveWindow.DisplayVerticalRuler
= false;






           
word.ActiveWindow.DisplayRightRuler = false;






           
word.ActiveWindow.ActivePane.DisplayRulers = false;






            word.ActiveWindow.ActivePane.View.Type
= Word.WdViewType.wdPrintView;






        }






 







       
public
void OpenDoc(string fileName)






       

{






            OpenDoc(fileName, false);






    
   }






 







       
public
void OpenDoc(string fileName, bool
readOnly)






       

{






           
this.SuspendLayout();






           
try







            {






               
object
rdOnly = readOnly;






               
object oFileName = fileName;






               
lFileName = fileName;






                word.Application.Documents.Open(ref oFileName,






                   

ref missing, ref
rdOnly, ref missing, ref
missing, ref missing,






                   

ref missing, ref
missing, ref missing, ref
missing, ref missing,






              
     
ref
missing, ref missing, ref
missing, ref missing, ref
missing);






                word.ActiveWindow.DisplayRightRuler
= false;






               
word.ActiveWindow.DisplayScreenTips = false;






                word.ActiveWindow.DisplayVerticalRuler
= false;






               
word.ActiveWindow.DisplayRightRuler = false;






               
word.ActiveWindow.ActivePane.DisplayRulers = false;






                word.ActiveWindow.ActivePane.View.Type
= Word.WdViewType.wdPrintView;






           

}






           
catch
(Exception ex)






            {






               
throw
ex;






            }






           
this.ResumeLayout();






           
this.Refresh();






        }






 







       
public
void
RestoreWord(bool rst)






        {






           
int counter = word.ActiveWindow.Application.CommandBars.Count;






           
for (int i = 0; i
< counter; i++)






           

{






               
try







                {






                   
word.ActiveWindow.Application.CommandBars[i].Enabled = rst;






               

}






               
catch







                {}






            }






        }






       
public
void
PrintDoc()






        {






           
try







            {






               

object
copies = "1";






               
object
pages = "";






               
object
range = Word.WdPrintOutRange.wdPrintAllDocument;






               
object
items = Word.WdPrintOutItem.wdPrintDocumentContent;






               
object
pageType = Word.WdPrintOutPages.wdPrintAllPages;






               
object
oTrue = true;






               
object
oFalse = false;






 







               
word.ActiveDocument.PrintOut(






                   

ref oTrue, ref
oFalse, ref range, ref
missing, ref missing, ref
missing,






                   


ref
items, ref
copies, ref pages, ref
pageType, ref oFalse, ref
oTrue,






                   

ref missing, ref
oFalse, ref missing, ref
missing, ref missing, ref
missing);






 







            }






           
catch (Exception ex)






            {






               
throw ex;






            }






        }






 







       
public
void
CloseDoc()






        {






           
try







            {






               
object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;






                word.ActiveDocument.Close(ref doNotSaveChanges, ref
missing, ref missing);






            }






           
catch







            { }






        }






 







       
public
void
CloseWord()






        {






           
try







            {






               
if (word != null)






                {






                   

object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;






                   
word.Quit(ref doNotSaveChanges, ref missing, ref
missing);






               

}






            }






           
catch







            { }






        }






    }





}
Commenter la réponse de DalMed
DalMed 10 Messages postés mardi 13 septembre 2005Date d'inscription 22 avril 2009 Dernière intervention - 20 nov. 2006 à 02:25
0
Merci
Je n’arrive pas à optimiser mon petit programme 
Commenter la réponse de DalMed

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.