Witam, napisalem cos takiego (kod generuje w locie plik PDF):
  1. <?
  2. function pv($name,$value){
  3.  global $objServiceManager;
  4.  $pv=$objServiceManager->Bridge_GetStruct('com.sun.star.beans.PropertyValue');
  5.  $pv->Name=$name;
  6.  $pv->Value=$value;
  7.  return($pv);
  8. }
  9.  
  10. $objServiceManager=new COM('com.sun.star.ServiceManager');
  11.  
  12. $Stardesktop=$objServiceManager->createInstance('com.sun.star.frame.Desktop');
  13.  
  14. $doc=$Stardesktop->loadComponentFromURL('private:factory/swriter','_blank',0,array(pv('Hidden',true)));
  15.  
  16. $text=$doc->getText();
  17. $text->setString('Hello World!');
  18.  
  19. $doc->storeToURL('file:///C:/1.pdf',array(pv('FilterName','writer_pdf_Export')));
  20. $doc->close(true);
  21. ?>


Wymaga zaintalowanego OpenOffice oraz w przypadku nie dzialania nalezy zastosowac sie do instrukcji:
Cytat
My problem was that the COM settings did not allow remote users access to open office.
To change this access the server and follow these steps:
1. Run -> dcomcnfg
2. Component Services -> DCOM Config
3. OpenOffice.org 1.1 Text Document -> Properties -> Identity (tab)
4. Now enter a specific user that has permission (i.e. your admin username and password)

(mi pomogla zmiana na: użytkownik interakcyjny)

Problemy:

1. Czy da sie jakos przechwycic wygenerowany strumien danych (w tym przypadku PDF) ? Nie chce zapisywac na dysku, chce wyslac prosto do przegladatki...

2. Niestety metoda setString przyjmuje dane w kodowaniu jakie jest obecnie z windowsie, a zalezy mi na UFT8 i nie mam pojecia jak to zmienic.......