[PHP] MS Word starten m.b.v. DCOM

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Met het web-based bedrijfsinformatiesysteem (BIS) van ons bedrijf kunnen automatisch offerte's (word-documenten) gegenereerd worden. Na het kiezen van een template wordt MS Word geopend en worden verschillende waarden uit de database (MS SQL server 2003) zoals bijvoorbeeld de naam en het adres van de relatie ingevuld in het document. Dit is gerealiseerd door het gebruik van een COM object welke op de volgende (standaard) manier in PHP wordt aangemaakt:

$word = new COM("word.application") or die("Unable to instantiate Word");

Dit is allemaal getest en lokaal werkt het ook naar behoren. Nu zit ik met het volgende:

Binnen ons bedrijf maken we gebruik van een terminal server, waarop de standaard office-applicaties geinstalleerd zijn. Verder hebben we een aparte internet- en mailserver. De medewerkers (+/- 30 werkstations) starten hun PC op en openen een terminal server sessie. Hierna kunnen ze werken in de office applicaties. Het opvragen van mail en internetpagina's (en dus ook het BIS!) gaat via de internet- en mailserver.

Het probleem is dat er géén office geïnstalleerd staat op de internetserver, waardoor het aanmaken van het COM object niet lukt. Ik weet dat het mogelijk is om met DCOM MS Word op een andere PC dan de server op te starten door het ipadres van de client mee te geven bij het aanmaken van het COM object, maar het lijkt erop alsof de aanwezigheid van Word op de server tóch verplicht is. Ik krijg foutmeldingen met de strekking:

Warning: (null)(): Invalid ProgID, GUID string, or Moniker: Invalid syntax in c:\inetpub\wwwroot\testremoteword.php

Het word object is dus niet geregistreerd op de server en heeft dus geen progId. Het heeft niets te maken met rechten, allemaal uitvoerig getest en ook niets met de instellingen van PHP.ini op de server (com.allow-dcom = true).

Kort samengevat: Is het mogelijk MS Word te starten op de terminal server wanneer het wordt aangeroepen door een php-pagina op de internet server, zonder Word op de internet-server te installeren? Ik heb al verschillende (oude) topics m.b.t. PHP en DCOM doorgespit, maar geen van deze bood een oplossing voor deze specifieke situatie....

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Klein schopje! (mag wel na 2 dagen dacht ik zo!)

Acties:
  • 0 Henk 'm!

  • [ti]
  • Registratie: Februari 2000
  • Niet online
Moet je niet eerst met dcomcnfg.exe de andere computer toevoegen enzo?

Acties:
  • 0 Henk 'm!

Verwijderd

lijkt in principe te kunnen als je het ip adres van de terminal server doorgeeft als 2de parameter:
new COM("word.application", ipadres_pcmetword)
ook nagaan of php.ini parameters bevat met com/dcom die aangezet moeten worden(dacht het wel aimgh)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op woensdag 09 maart 2005 @ 13:22:
...of php.ini parameters bevat met com/dcom die aangezet moeten worden(dacht het wel aimgh)....
Zoals ik in mijn openingspost ook al had beschreven is dit reeds gebeurd....laat ik het anders formuleren: Heeft IEMAND een vergelijkbare situatie werkend gekregen? dus PHP, DCOM en terminal server? ik ben namelijk benieuwd of het uberhaupt kan. Zo niet, dan moet ik een andere oplossing zien te verzinnen. Voor ons systeem kan ik niet buiten MS Word om!

Acties:
  • 0 Henk 'm!

Verwijderd

Ik raad je af om op deze manier met Word te communiceren in een webapplicatie.

Er hoeft maar één ding mis te gaan en de hele communicatie met Word loop de soep in.
Instanties van Word die actief blijven, omdat deze niet goed afgesloten zijn.
Wat als twee gebruikers tegelijkertijd Word willen openen?
Bovendien is het traag i.v.m. opstarten van Word.

Het beste zou zijn om een component te gebruiken dat native met Word documenten om kan gaan. Ik weet niet of ze voor PHP bestaan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dan ga ik maar op zoek naar zo'n component. Ik laat wel weten of (en waar) ik deze heb kunnen vinden.
Pagina: 1