Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1096 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme marge IE et objet COM

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme marge IE et objet COM

n°1598974
Lars331
Posté le 13-08-2007 à 14:39:08  profilanswer
 

Salut à tous
 
Alors voilà j'ai 2 petits problèmes:
     - Le 1er pour l'intranet de mon entreprise je dois imprimer des étiquettes 60*30 en fonction de ce que saisira l'utilsateur. Donc pour afficher l'étiquette pas de problème mais quand je veux l'imprimer j'ai la marge d'internet explorer qui me décale toute l'etiquette et je n'en récupere que la moité. Donc il me faudrait une marge à 2 mm au lieu des 19.06 mm habituel? Je sais que dans Fichier/Mise en page on peut modifier les marges mais je veux le faire depuis mon script et non par la mise en page donc si quelqu'un a une idée???
     - Le 2ieme toujours pour les étiquettes j'ai essayé de faire le script avec les objets COM mais j'ai un problème quand j'essaie d'ouvrir le fichier cible. J'arrive bien a créer un nouveau fichier et y écrire dedans mais pas à en ouvrir un éxistant. voici mon script php:
 

Code :
  1. ini_set("com.allow_dcom","true" );
  2. $word = new COM("word.application" ) or die("Unable to instantiate Word" );
  3. if ($word == "Microsoft Word" )
  4. {
  5. print "$word";
  6. $template_file = "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Etiquette_SO2_HCL\comtest.doc";
  7. print "$template_file";
  8. if(file_exists($template_file)){
  9.  print "Fichier existant";
  10.  $word->Visible = 1;
  11.             //$word->Documents->Add();
  12.  $word->Documents->Open($template_file);
  13.  $word->Selection->TypeText("ceci est ma première page Word" );
  14.  $new_file = "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Etiquette_SO2_HCL\comtest.doc";
  15.  $word->Documents[1]->SaveAs($new_file);
  16. }
  17. else print "Fichier inexistant";
  18. }
  19. $word->Quit();
  20. $word = null;


 
Si quelq'un peut m'aider sur n'importe lequel des 2 problèmes  
Merci par avance

mood
Publicité
Posté le 13-08-2007 à 14:39:08  profilanswer
 

n°1598977
antac
..
Posté le 13-08-2007 à 14:41:08  profilanswer
 

Tu veux ouvrir un fichier word existant sur le serveur avec Word ?

n°1598987
Lars331
Posté le 13-08-2007 à 14:48:59  profilanswer
 

Oui mais si tu as une autre solution je suis preneur.

n°1598991
antac
..
Posté le 13-08-2007 à 14:56:01  profilanswer
 

Je l'ai fait en javascript :  
http://www.phpfrance.com/irc/TheWa [...] ?wall=1264
 
par exemple

n°1599277
Lars331
Posté le 14-08-2007 à 09:23:49  profilanswer
 

Salut
 
Peux-tu m'expliquer comment fonctionne cette fonction car je ne connais rien au javascript. Sinon à quoi correspondent les portions php que tu as mis dans le code?
 
Merci

n°1599282
antac
..
Posté le 14-08-2007 à 09:39:22  profilanswer
 

J'ai écrit cette fonction dans un cadre professionnel.
le var oSH.... permet de créer un nouvel object ActiveX permettant de démarrer un programme sur le client.
OsH run dit de démarrer word. La portion de code à coté permet de définir l'emplacement du fichier à ouvrir.
enfin le window.location.replace permet au navigateur de changer de page vers celles définit.

n°1599288
Lars331
Posté le 14-08-2007 à 10:23:38  profilanswer
 

Apparemment c'est éxactement ce que je cherche mais j'ai une erreur (http 404) quand je passe par la fonction. Voici la fonction tel que je m'en sers:

Code :
  1. function runword(){
  2. var oSH = new ActiveXObject("WScript.Shell" );
  3. oSH.Run("winword.exe <?php echo "C:\comtest.doc"?>" );
  4. window.location.replace("C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Etiquette_SO2_HCL\Etiquette_SO2_HCL.php" );
  5. }


 
Si je désactive le Run j'arrive bien sur ma 2ieme page donc je pense que l'erreur est au niveau de la balise php est du echo mais je ne vois pas trop ce qui cloche.

n°1599289
antac
..
Posté le 14-08-2007 à 10:26:55  profilanswer
 

C'est tout a fait normal :
1) Est-ce que ton fichier C:\comtest.doc existe sur ton client ?  
Je pense pas vu que tu veux le télécharger, il faut que tu lui donnes son emplacement sur le serveur : http://serveur/comtest.doc
par exemple
2) Tu veux faire un location replace avec une adresse de type Windows, or c'est le meme principe tu dois passer par le serveur apache
donc window.location.replace("http://serveur/Etiquette_SO2_HCL.php" ) par exemple
 
Il faut savoir une chose : Le javascript est exécuté par le client alors que le code php est exécuté par le serveur. Cela fait une grosse différence.
Quand tu travailles en php tu dois te dire c'est le serveur qui travaille et si je travaille sur les fichiers ce sont les fichiers du serveur
En JS, c'est le client qui bosse et tu travailles sur le poste du client.


Message édité par antac le 14-08-2007 à 10:28:07
n°1599320
Lars331
Posté le 14-08-2007 à 11:17:50  profilanswer
 

Voilà j'ai fait ce que tu m'as indiqué mais j'ai toujours le même problème apprement le problème viendrait du Run je pense des guillements. Voilà comment je l'ai modifié:
 

Code :
  1. oSH.Run("winword.exe <?php echo "http:\pcwxp157\Etiquette_SO2_HCL\comtest.doc" ?>" );
  2. window.location.replace("http:\pcwxp157\Etiquette_SO2_HCL\Etiquette_SO2_HCL.php" );


 
Comme tu peux le voir dans le code le 'http:\pcwxp...' n'est pas en rouge alors que c'est un paramètre.

n°1599326
antac
..
Posté le 14-08-2007 à 11:22:54  profilanswer
 

dans ton cas écrit :  
oSH.Run("winword.exe http:\pcwxp157\Etiquette_SO2_HCL\comtest.doc" );
 
  window.location.replace("http:\pcwxp157\Etiquette_SO2_HCL\Etiquette_SO2_HCL.php" );

mood
Publicité
Posté le 14-08-2007 à 11:22:54  profilanswer
 

n°1599394
Lars331
Posté le 14-08-2007 à 14:11:05  profilanswer
 

Ca y est ca marche...
Merci antac

n°1599399
antac
..
Posté le 14-08-2007 à 14:15:40  profilanswer
 

De rien

n°1742444
Tyra3l
Posté le 06-06-2008 à 12:18:01  profilanswer
 

Bonjour,  
je me permets de remonter ce sujet assez ancien mais j'ai un problème qui ressemble à celui exposé ici...
 
Voilà je dois donc ouvrir une application office(word, powerpoint, excel...) directement, ceci ne pose pas de soucis vu que la solution a été donnée plus haut, mais mon problème est que je ne connait pas le chemin de mon fichier à ouvrir car je dois le récupérer avec une fonction PHP de ce style :  
 

Code :
  1. foreach ($this->rows as $row) {
  2. ?>
  3. <li><?php echo $row->text; ?> <small><em></em></small><br>
  4. <a href="<?=$row->path_file; ?>"><img src=<?php echo $row->path_file; ?>></a>


 
J'ai pris le script javascript plus haut :  

Code :
  1. <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
  2. <!--
  3. function runword()
  4. {
  5. var oSH = new ActiveXObject("WScript.Shell" );
  6. oSH.Run("winword.exe" );
  7. }
  8. //-->  
  9. </script>
  10. <button id=button1 name=button1 onclick="javascript: runword()">TEST</button>

 
ce script fonctionne lorsque je connais le chemin (par exemple http://trucbidule.doc) mais je n'arrive pas à le faire fonctionner avec la fonction PHP, j'arrive à ouvrir word en fait öais pas le fichier qui doit apparaître dedans.
 
Si vous pouviez m'aider à réaliser ca s'il vous plait...
 
Et (accessoirement) j'aimerais pouvoir faire en sorte que excel s'ouvre si c'est un .xls, word pour un .doc etc... mais je ne sais pas du tout comment faire, je suis une vraie bille en PHP mais malheureusement dans mon stage on me demande de l'utiliser.
 
Merci d'avance à ceux qui pourront m'aider...
 
Tyra3l


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme marge IE et objet COM

 

Sujets relatifs
Problème d'include entre sous-domainesprobleme dans un projet (niveau debutant)
Problème avec nom de champs identique[Résolu] Problème ActionScript - fonction onLoad
Problème ActionScript (Flash) - onLoad[VBS] Probleme WMI distant (sur Win32_Product)
{Résolu} problème URL et variables[C++] Problème stringstream/fstream et rdbuf() [résolu]
Problème pour une requête sqlProbleme controle de saisie
Plus de sujets relatifs à : Probleme marge IE et objet COM


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR