IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

ouvrir un .doc ou .pdf au sein d'un prog


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut ouvrir un .doc ou .pdf au sein d'un prog
    salut tout le monde

    Je programme un moteur de recherche sensé ouvrir des fichiers word et les fouiller mais je viens de me rendre compte qu'il ne suffit pas de changer l'extension d'un fichier txt en doc pour faire un fichier word et que jusqu'à maintenant mon prog fouillé des fichier .txt déguisés en .doc.
    Je souhaiterais donc rétablir cette bévue et fouiller des vrais fichiers .doc mais ça marche pas fort.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    hFile=CreateFile ((LPCTSTR) NomFichier, GENERIC_READ, FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
    FileSize=GetFileSize (hFile, (LPDWORD) NULL);
    	if (FileSize==0xFFFFFFFF)
    	{
    		CloseHandle (hFile);
    		return;
    	}
    	SecureZeroMemory(&BufferData, sizeof(BufferData));
    	BufferData = (char*) GlobalAlloc (GMEM_FIXED,FileSize);
    	ReadFile (hFile, (LPVOID) BufferData, FileSize, &ByteRead, (LPOVERLAPPED) NULL);
    	if (ByteRead!=FileSize && ByteRead!=0)
    		return;
    	CharLower(BufferData);
    E
    T
    C
    et dans BufferData je ramasse des truc illisibles, quelqu'un saurait il m'aider pour régler ce problème?
    Tant que j'y suis, je souhaite également pouvoir ouvrir des .pdf

    Merci!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    SVP

    le code ci dessus marche pour des .txt mais pas pour les .doc y a t'il des options spécifiques à mettre lors du openfile ou du readfile pour décrypter le .doc correctement?

  3. #3
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut
    Il faut utiliser la technologie OLE Automation de Word pour pouvoir créer/lire/modifier ... des vraies fichiers .doc

    Je sais que c plutôt facile à manipuler, voici un bout de code réalisé dans une boîte de dialogue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
     
    #include "msword9.h" // créé via AppWizard, 
    		 // (avec le .cpp correspondant inclus dans le projet) :
    		 //
    		 // onglet Automation, 
    		 // bouton addClass :
    		 // précisez : From a Type of library,
    		 // sélection de msword9.olb situé dans
    		 // le répertoire C:Program Files\Microsoft Office\office
     
    #include <afxdisp.h>	
    // à rajouter impérativement pour manipuler les Automations
     
    .....
     
    void CTaClassDlg::OnBtOk() 
    {
    	// TODO: Add your control notification handler code here
    	CString nameFile ;
    	nameFile = "D:/tosave/winprj/TestOleAutomationWord/Release/essai.doc";
     
    	_Application app ; // app est l'objet d'application de Word
    	COleVariant covTrue((short)true) ;
    	COleVariant covFalse((short)false) ;
    	COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR) ; // arguments optionnel
     
    	//-----------------------------------------
    	// lancement de word et retourne l'objet d'application
    	if (!app.CreateDispatch("Word.Application"))
    	{
    		AfxMessageBox("Impossible de démarrer Word") ;
    	}
    	else
    	{
    		// Rend Word visible ou invisible
    		if (m_WordIsVisible != 0)
    			app.SetVisible(TRUE) ;
    		else app.SetVisible(FALSE) ;
     
    		AfxMessageBox("Word tourne") ;
     
    		//-----------------------------------------
    		// vérification que le fichier existe réellement
    		if(_access(nameFile,0)==-1)    
    		{
    			AfxMessageBox("Erreur sur fichier selection");
    		}
    		else
    		{
    			//-----------------------------------------
    			// ouverture d'un document
    			Documents oDocs(app.GetDocuments()) ;
    			_Document oDoc ;
     
    			oDoc.AttachDispatch(	oDocs.Open(
    												COleVariant(nameFile),
    												covFalse, // Confirm Conversion
    												covFalse, // ReadOnly
    												covFalse, // AddToRecentFiles
    												covOptional, // PassWord Document
    												covOptional, // PassWord Template
    												covFalse, // Revert
    												covOptional, // WritePassWord Document
    												covOptional, // WritePassWord Tempalte
    												covOptional, // Format
    												covOptional, // Encoding
    												covTrue  // Visible
    											)
    								) ;
    			AfxMessageBox("Fichier test.doc ouvert") ;
     
    			//-----------------------------------------
    			// accéder à un signet :
    			Bookmarks vBookMarks;
     
     
    			Selection selObj(app.GetSelection()) ; // pour écrire
     
    			// récupération de la liste des signets
    			vBookMarks = oDoc.GetBookmarks() ;
     
    			////////////////////
    			// signet texte pur
     
    			// test si le signet cherché appartient à cette liste
    			if (vBookMarks.Exists("titi"))
    			{
    				Bookmark vBookMark ;
    				// récupération du signet cherché et activation du signet
    				vBookMark.AttachDispatch(	vBookMarks.Item(
    																COleVariant("Titi")
    															)
    										) ;
     
    				AfxMessageBox("Accès au signet titi ok") ;
     
    				//-------------------------------------
    				// écriture d'un texte à la fin d'un signet
    				long startPos, endPos ;
    				startPos = endPos = 0 ;
     
    				startPos = vBookMark.GetStart();
    				endPos = vBookMark.GetEnd() ;
     
    				selObj.AttachDispatch(app.GetSelection()) ;
    				selObj.SetRange(startPos,endPos) ;
     
    				selObj.InsertAfter("1000.00") ;
     
    				AfxMessageBox("Ajout du texte après le signet titi ok") ;
     
    				//-------------------------------------
    				// on détache le signet de l'objet qui le représente
    				vBookMark.DetachDispatch() ;
    				selObj.DetachDispatch() ;
     
    				/////////////////////////////
    				// signet texte dans tableau
     
    				// test si le signet cherché appartient à cette liste
    				if (vBookMarks.Exists("toto"))
    				{
    					Bookmark vBookMark ;
    					// récupération du signet cherché et activation du signet
    					vBookMark.AttachDispatch(	vBookMarks.Item(
    																	COleVariant("Toto")
    																)
    											) ;
     
    					AfxMessageBox("Accès au signet Toto ok") ;
     
    					//-------------------------------------
    					// écriture d'un texte à la fin d'un signet
    					endPos = vBookMark.GetEnd() ;
    					startPos = vBookMark.GetStart();
     
    					selObj.AttachDispatch(app.GetSelection()) ;
    					selObj.SetRange(startPos,endPos) ;
     
    					selObj.InsertAfter("2000.00") ;
     
    					AfxMessageBox("Ajout du texte après le signet toto ok") ;
     
    					//-------------------------------------
    					// sauvegarde du fichier
    					oDoc.Save() ;
     
    					AfxMessageBox("Sauvegarde du fichier ok") ;
     
    					//-------------------------------------
    					// destruction des objets pour l'insertion d'un texte à un endroite précis
    					selObj.Shrink() ;
    					vBookMark.ReleaseDispatch() ;
    					vBookMarks.ReleaseDispatch() ;
     
    				}
    				else AfxMessageBox("le signet toto est inexistant dans le fichier") ;	
    			}
    			else AfxMessageBox("le signet titi est inexistant dans le fichier") ;
     
    			//-----------------------------------------
    			// fermeture d'un document
    			AfxMessageBox("fermeture du document") ;
     
    			oDoc.Close(covFalse,covOptional,covOptional) ;
     
    			//-----------------------------------------
    			// nettoyage des variables d'ouverture d'un documents
    			oDoc.ReleaseDispatch() ;
    			oDocs.ReleaseDispatch() ;
    		}
    		//-----------------------------------------
    		// fermeture de Word
    		AfxMessageBox("fermeture de Word") ;
    		app.Quit(covFalse, covTrue,covFalse);
    	}
    }
    Bien entendu tu ajouteras les fichiers msword9.cpp et .h à ton projet.

    Ces fichiers sont à créer avec ton appWizard comme expliqué dans les commentaires. Tu choisis le .odb qui t'intéresses : ici pour ma part le odb duWord 2000. Tu pourras voir qu'on peut faire la même chose avec un tas de fichiers spécials windows comme word 97 word6.0 ou excel !

    Je t'invite à aller te documenter chez ce cher bon vieux MSDN ainsi que notre superbe nouvelle Vc++ by Farscape .

    Amuse toi bien.

    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    trop tard pour la réponse, ma cervelle est foutu pour aujourd'hui mais le peu de neurones vivants qui me restent me disent qu'à première vue ça a l'air bien mais on regardera ça sérieusement demain.


  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    euh c'est quoi appwizard?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Pour les PDF c'est le même genre mais avec le SDK de adobe acrobat reader. La solution générique pour simplement visualiser des fichiers c'est d'embarquer un controle Internet Explorer. Tout ce que IE sait ouvrir (doc, excel, pdf, ...) ton prog saura l'ouvrir aussi. Mais par contre tu peux pas analyser le contenu ou modifier...

  7. #7
    Membre régulier
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Points : 85
    Points
    85
    Par défaut
    appWizard dit Wizard est l'assistant de développement de Visual Studio C++

    Perso j'utilise VC++ 6.0

    Repose toi bien ! ( )

    Alice
    Alice

    A coeur vaillant, rien d'impossible !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    réanimation du topic:

    yagmoth irldixiedae sun daxylum
    yagmoth irldixiedaes sin daxyla
    yagmoth irldixiedae sum daxylae

    topic réanimé


    suite à vos proposition bien pratique, il semblerai que mes supérieur n'apprécient pas la solution des .olb.
    alors je continue dans la voie de départ mais cette fois avec ouverture en binaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    stream=fopen (NomFichier,"rb");	
    while (!feof(stream))
    {
    	fread(buffer,sizeof(char),taillebuffer,stream);
    	for (int n=0;n<taillebuffer;n++)
    	{
    		if((int)buffer[n]>32 && (int)buffer[n]<128)
    		{
    			buffer2[p]=buffer[n];
    			p++;
    		}
    	}
    et je récupère que du truc illisible ou quedalle, vous auriez pas un code de grand mère qui résoudrait mon prob'?

    MERCI

    NB: si vous avez lu l'incantation à voix hautes vous allez mourir dans la prochaine demi heure, dépêchez vous de répondre dans ce cas là.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    petite rectification je récupère mon texte mais perdu au milieu de plein de caractères qui servent à rien: config du fichier, taille de la police et d'autres trucs incompréhensibles

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par noinneh
    petite rectification je récupère mon texte mais perdu au milieu de plein de caractères qui servent à rien: config du fichier, taille de la police et d'autres trucs incompréhensibles
    ben c'est pas trop etonnant non ?
    si tes superieurs n'aiment pas ole (surement du a une mauvaise rencontre) ,parle de Activex ,
    non serieusement sans activex specialisé, SDK ,ou moulinette interactive transformant du pdf en html je vois pas trop comment tu va en sortir...

  11. #11
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par noinneh
    et je récupère que du truc illisible ou quedalle, vous auriez pas un code de grand mère qui résoudrait mon prob'?
    Tu lis les données brutes. Elles n'ont de sens que pour le logiciel qui a créé le fichier il faut que ce soit lui qui traite ces données et génère un affichage qui ait du sens. Donc il faut interragir avec le logiciel en question.

    NB: si vous avez lu l'incantation à voix hautes vous allez mourir dans la prochaine demi heure, dépêchez vous de répondre dans ce cas là.
    On a déjà répondu.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    en ce qui concerne le .doc c'est réussi maintenant pour le pdf ça me semble trop corsé

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Pour les PDF c'est le même genre mais avec le SDK de adobe acrobat reader. La solution générique pour simplement visualiser des fichiers c'est d'embarquer un controle Internet Explorer. Tout ce que IE sait ouvrir (doc, excel, pdf, ...) ton prog saura l'ouvrir aussi.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    j'ai pas le droit d'employer les SDKs, je fais tout avec les bons vieux fopen, fread et fclose, pour un .doc je vire les 2560 premiers octets qui servent à la config et je travaille avec le texte qui se trouve après.
    Pour les .pdf quand j'ouvre je récup ce genre de chose dans mon buffer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [(pr)-20(\351)19(t)-4(e)19(n)-20(de)19(n)-20(t)-4]
    si tu regarde bien tu lis le mot prétendent mais pour le reconstituer je dois récupérer tout ce qui se trouve entre parenthèses et remplacer les caractères spéciaux: ici '\351' équivaut à 'é', trucs chiants quoi ensuite de quoi je pourrais faire ma recherche.
    En fin de compte je m'en sors plutot bien et la seule raison pour laquelle je vous parle en ce moment c'est pour raconter ma vie, passionnant non?

  15. #15
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    c'est vraiment pas la bonne méthode ...

    mais bon, si ca te convient ...

  16. #16
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Il va servir dans que contexte ton logiciel ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    c'est un moteur de recherche pour ma boite, principalement orienté dans la recherche de CV d'ù les formats .doc ou .pdf, il n'y a rien de commercial et je ne sais pas exactement pourquoi je ne dois pas utiliser les .olb activeX et autres. ceci dit je suis en début de CDI et en formation avant que la boite me rentabilise, c'est donc un projet pour me tester.

  18. #18
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Utilise des outils genre pdf2txt, rtf2txt, ... et récupère ce qu'ils sortent. Parce qu'avec ton fopen et tes 2560 octets magiques tu vas être déçu (test sur plusieurs fichiers). Pour info un pdf c'est souvent compressé (donc pas de texte en clair), Word y'a 36 formats de fichiers, ...
    L'idéal pour Word serait de le piloter pour lui demander d'enregistrer le document en format texte brut. Mais c'est du COM et apparement on t'en empêche. Mon avis est que tu devrais faire un peu le forcing, sionon ils auront un résultat à la hauteur des moyens mis à ta disposition. C'est comme demander de s'interfacer à une base de donnees uniquement à la socket.

  19. #19
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    C'est comme demander de s'interfacer à une base de donnees uniquement à la socket.

    si jamais tu changes d'avis pour le doc en txt il y a truc tout fait dans la faq:
    http://c.developpez.com/faq/vc/?page...onvertDocToTxt

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    Aurelien.Regat-Barrel a écrit:
    C'est comme demander de s'interfacer à une base de donnees uniquement à la socket.

    :Mouarf2:
    un jour, moi aussi je comprendrai de quoi tu parles et je rigolerai, alors je serai un homme...
    non, sans déc' ça fait plaisir de voir qu'on se soucie de nos problèmes, merci les gars.

Discussions similaires

  1. [AC-2003] Ouvrir un doc PDF avec un bouton
    Par maringot dans le forum Access
    Réponses: 2
    Dernier message: 10/11/2014, 07h57
  2. Ouvrir un document .doc ou .pdf
    Par jboussou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/08/2012, 16h45
  3. ouvrir un fichier .doc ou .pdf
    Par touille dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 30/07/2008, 12h11
  4. Ouvrir un .doc ou .xml sur un lecteur réseau
    Par rteuteu55 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/02/2006, 15h46
  5. [Info]Convertir un .doc en .pdf
    Par pilz dans le forum Documents
    Réponses: 3
    Dernier message: 10/12/2004, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo