About Puno

This project is a PHP5 module written in C++ that brings the OpenOffice.org UNO Programming API to the PHP userspace.

You can use it to write scripts that create, modify, read and save OpenOffice.org documents (Writer, Spreadsheet, Drawing). Also, you can export these documents in various formats, like PDF or HTML for example.

Here is a sample php script and this is the document it generates.

It can be installed on any Linux/Unix or Windows platform where PHP5 and OpenOffice.org are also available.

If you need more information about the OpenOffice.org API and what you can do with it, please read the Developers Guide - First Steps chapter.

It is released under PHP License 3.01.


Usage

Here you can find some code examples that will help you to get started with UNO. Those are the same examples from the Developers Guide, but written in PHP.


General Programming Guidelines

Puno uses the UNO Reflection API to access objects and execute methods from the OpenOffice.org API. PHP functions and methods names are case-insentive, but those accessed through the Reflection API are not. This means that you must always write object names exactly as they are documented in the Developers Guide. This rule is valid for object attributes and method names as well.

API defined structs are also created through the Reflection API. For this purpose, the special function create_struct is available. It takes just one parameter, the name of the struct to be created.

Differently from the Java and C++ bindings, in PHP it is not necessary to query interfaces from objects or services. This is automatically done by the Reflection API. So you just need to call the desired method from the object and the correct interface will be used.


Technical Information

In order to access the Office using the UNO API, your OpenOffice.org must be running with Java support enabled and listening on a TCP/IP socket.
This is not done by default, so you must either modify the configuration file or start the Office with the following line:
<OFFICEPATH>/program/soffice "-accept=socket,port=8100;urp;"
For a more complete explanation, consult the Configuration Section in the Developers Guide - First Steps chapter.

Copyright 2006-2014 WS/Tech² Informática LTDA - ME. Todos os Direitos Reservados.
Contato: / Curitiba - PR