|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
SDK home |
 |
 |
Examples |
 |
 |
|
 |
 |
The SDK provides a rich set of examples in different programming languages
(Java, C++, OpenOffice.org 1.1 Basic, OLE) to illustrate the use of the API and
demonstrate how to benefit from the included word processor, spreadsheet,
presentation software, graphics program and database of OpenOffice.org 1.1.
In order to connect most of the following client programs to the running office server,
before running those programs, you should invoke the office with the following command:
soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"
You could also customize the mentioned host and port to your needs.
Every makefile contains at least one run target to execute an running example, please see
the makefile output in the different example directories.
Some of the examples which create a component have no run target. In these cases a document is
provided which instantiates and runs the component (see the makefile output). Also the Basic
examples provide documents which use and shows the implemented functionality.
|
 |
 |
|
 |
 |
Developer's Guide examples
|
The Developer's Guide comes with a rich set
of examples which demonstrate the use of the API in the different application areas.
|
 |
 |
Java examples
|
Set of simple and more complex examples which shows the use of the API from Java.
|
 |
 |
Java Bean examples
|
Set of examples which shows the use of the OfficeBean API.
|
 |
 |
C++ examples
|
Small set of examples which shows the use of the API from C++.
|
 |
 |
OpenOffice.org 1.1 Basic examples
|
Small set of examples which shows the use of the API from OpenOffice.org 1.1 Basic.
|
 |
 |
Object Linking and Embedding (OLE) examples
|
Examples which shows the use of the API from OLE.
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
Java examples
SDK home examples overview
In order to connect the following client programs to the running office server, before running
those programs you should stop the Quickstarter if running and should invoke the office with
the following command:
soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"
You can also customize the mentioned host and port to your needs.
Text Document Examples |
Description |
BookmarkInsertion |
This application connects to the office server and gets the
multi service factory. An empty text document will be opened and an example text will be
entered. Afterwards, some bookmarks will be inserted.
|
HardFormatting |
This program connects to the office server and gets the
multi service factory. Furthermore, an empty text document will be opened, an example text
will be entered, some text attributes will be inspected, and the
PropertyState will be checked from the selection.
|
SWriter |
The program connects to the office server and gets the
multi service factory. An empty text document will be created, some text will be entered,
and a text table, a colored text, and text frame will be inserted.
|
StyleCreation |
The example connects to the office server and gets the
multi service factory. An empty text document will be opened, a new paragraph style will
be created, and applied.
|
StyleInitialization |
The program connects to the office server and gets the
multi service factory. Thereafter, an empty text document will be opened and an example
text will be entered. The paragraph collection will be used, in order to apply a different
paragraph style on the paragraphs.
|
TextDocumentStructure |
The application connects to the office server and gets the
multi service factory. An empty text document will be opened, an enumeration of all
paragraphs and an enumeration of all text portions will be created.
|
TextReplace |
The example connects to the office server and gets the
multi service factory. An empty text document will be created, an example text will be
inserted, and some English spelled words will be replaced with US spelled words.
|
GraphicsInserter |
The GraphicsInserter creates a graphics object on an empty text document by setting its
position, width, height, and URL.
|
WriterSelector |
This class gives you information on the selected objects (text range, text frame, or graphics)
at an OpenOffice.org Server.
|
Spreadsheet Document Examples |
Description |
CalcAddins |
This component adds new functions to the spreadsheet application. After registering the
component, the inserted functions can be found with help of the functions autopilot.
The new functions are assigned to the category Add-in.
|
ChartTypeChange |
This class loads an OpenOffice.org 1.1 Calc document and changes the type of the embedded chart.
|
EuroAdaption |
The application connects to the office server and gets the
multi service factory, opens an empty Calc document, enters an example text, sets the
number format to DM, changes the number format to EUR (Euro), and uses the DM/EUR factor on
each cell with content.
|
SCalc |
The program connects to the office server and gets the
multi service factory. Then an empty calc document will be opened, cell styles will be
created, some data will be inserted into the sheets, and the created cell styles will be
applied. Finally, a 3D chart will be inserted.
|
Drawing Document Examples |
Description |
SDraw |
This program connects to the office server and gets the
multi service factory. Afterwards, an empty text document will be created and some shapes
will be inserted on the draw page.
|
Document Handling Examples |
Description |
DocumentConverter |
The program offers a service that converts arbitrary documents to a favored document
type.
|
DocumentLoader |
The DocumentLoader can open a new or an existing document.
|
DocumentPrinter |
The DocumentPrinter allows you to print the favored pages of a specified document on
your favored printer.
|
DocumentSaver |
The DocumentSaver shows how to save a document and how you can change the type of
your document.
|
UNO Component Examples |
Description |
Inspector |
The Instance Inspector is primarily an auxiliary tool for the developer, which can present
information about an object of the Star Office API at run-time. Depending on the object
to be inspected, appropriate methods, interfaces, services, and attributes can be displayed
to the developer. The methods, interfaces, services and attributes are represented in a
predictable tree. If the attributes contained in an object are to be examined, the
appropriate nodes in the tree can be expanded with the help of the mouse. For each non
primitive object, five categories are offered to the user, as long as those are available
with that object.
|
MinimalComponent |
This class provides a minimal UNO component. You can take this class as a base for your own
components. By extensions of this class it is possible to also extend the function range of
the Office.
|
PropTest |
Contains a component that provides property set interfaces by means of inheriting
com.sun.star.lib.uno.helper.ProperterSet.
|
ToDo |
For every to-do listed in a spreadsheet document, this component calculates the start date,
day of week of the start date, the end date, and the day of week of the end date.
All calculations are dependent upon the values of "Needed Days", "Due Date"
and "Status". The columns "Needed Days" and "Status" are
mandatory. The first to-do should be placed in row nine. The date to start the calculation
should be placed in cell C6. The private holidays should be placed in cell K4/K5 and below.
All rows will be calculated up to the first empty cell in the first column. If a cell in the
column "Due Date" is colored red, you should take a look at your entries.
|
Other Examples |
Description |
ConverterServlet |
This servlet shows how to convert arbitrary documents on a remotely running office server.
The converted document will be pushed from the web server to the client browser. Please see
the README file for further information.
|
NotesAccess |
This class creates a spreadsheet document and fills it with existing values of documents
from a Lotus Notes database. You need the Notes.jar from Notes/Domino for this example.
You can download it from http://www.servlets.com/cos/index.html and then please copy
it into your $(OFFICE_CLASSES_DIR) directory.
|
Additional information:
How to write UNO components in Java
Java UNO language binding
Debugging Java components
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
Java Bean examples
SDK home examples overview
Unlike the Java examples above, these Java Beans will start up their own office server so that you do
not need to start one up. There is some code that is shared between the two example Beans, which
can be found in the OfficeBean directory. The
Developer's Guide
includes a chapter on developing new Java Beans with the OfficeBean API and provides two examples
of simple OfficeBeans.
Example |
Description |
SimpleBean |
This example Java Bean shows how an Office document window can be embedded within a Java
environment.
|
OfficeWriterBean |
This example Java Bean shows how an Office Writer document can be embedded with a Java
environment and Writer specific functionality can be invoked from Java.
|
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
C++ examples
SDK home examples overview
The DocumentLoader and Office client samples need also a running office server, before running
those programs you should stop the Quickstarter if running and should invoke the office with
the following command:
soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"
You can also customize the mentioned host and port to your needs.
Example |
Description |
DocumentLoader |
This component works the same as the appropriate Java example, but is implemented in C++.
|
Counter |
This demo shows how to implement a very simple UNO component and how to access the UNO
component from an executable.
|
Remote client |
The uno.exe program is used to export an arbitrary service to other processes. In this
example the com.sun.star.uno.Pipe service (which is built in io-module) is exported. The
client component implements the
com.sun.star.lang.XMain interface. In the run method, it connects to the servers process
and retrieves an instance and does some calls on the instance.
|
Additional information:
How to write a UNO component in C++
C++ UNO language binding
C++ reference
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
OpenOffice.org 1.1 Basic examples
SDK home examples overview
The example programs are embedded in StarOffice/OpenOffice.org documents in the samples directory.
To view or edit the StarOffice/OpenOffice.org Basic source, select the appropriate document
and then select Tools->Macro.
Most of the examples are stand-alone, but two of them (Creating an Index and Import/Export
of ASCII Files) have an associated data file identified by a .txt file name suffix).
Some of the examples are also available in Java, you can find them in the Java section.
Example |
Description |
Changing Appearance |
To change the style used for certain words, you can start with the following example. This
code searches for the regular expression the[a-z] , which stands for the text portion
the followed by exactly one lowercase letter. All occurrences of these four letters are then
changed to bold characters. The same happens in the next part of the program,
this time changing the appearance of all[a-z] to italic. In order for this example
to work, you must execute it from an open text document.
|
Replacing Text |
If you regularly receive documents from other people for editing, you might want to make sure
that certain words are always written the same. The next example illustrates this by forcing
certain words to be spelled in American English.
In order for this example to work, you must execute it from an open text document. For a real
world application, it is a good idea to read the words from an external file.
|
Using Regular Expressions |
Another application of automatic text modification is related to stylistic questions. Suppose
your companys policy is to avoid the use of certain words. You want to replace these
words, but you cannot do that automatically because you have to find the appropriate
replacement, which depends on the context. So instead of deleting or replacing the offending
words automatically, you change their color to make them stand out during a subsequent manual
review process.
The following example handles two kinds of unwanted wordings: those which are absolutely
forbidden and must be replaced by something else, and those which are considered bad style.
A subroutine is responsible for the changes. It can be used to make all words in a list
appear in a certain color in the text document. To keep the lists short, we use regular
expressions which provide for the variants of the words (plural, adjective etc.).
|
Inserting Bookmarks |
The next example does something very similar. This time, however, we do not change the color of
the words but insert a bookmark at each of them. You can thus use the StarOffice navigator to
jump directly from word to word. Bookmarks must first be created using createInstance()
. They are then inserted with insertTextContent() at the current text
range.
The main difference to the preceding example is the For loop in markList() .
Instead of changing the color of the current word, it creates a new bookmark, oBookmark, whose
name is the current word with an integer appended. It then inserts this bookmark at the word.
|
Creating an Index |
Indices for text documents can be created manually in StarWriter by clicking on the words that
should appear in the index. If the document is large, or if you have to generate indices for
several documents, this task should be automated.
|
Adapting to Euroland |
Most of the members of the European Union will abandon their old currency in favor of the new
Euro in 2001. This requires modifications to all programs using the old currencies. Since the
exchange rates for the old currencies have been fixed at the end of 1999, one can already
convert old data. The following program does this for all values in a table that are formatted
with the currency string DM.
|
Import/Export of ASCII Files |
You can use the drawing facilities of StarOffice API to generate a picture from ASCII input.
One application would be a hierarchical representation of a directory listing, based on
textual data.
|
Stock Quotes Updater |
If you want to display stock charts for certain companies, you can open up your browser every
day, go to a search engine, look up the quote and copy it by hand into a table. Or you can use a program
that does all this automatically. The following example relies on the sheet module. It uses
URLs to obtain the current stock quotes. The quotes are displayed in sheets, one for each
company. We show a line diagram and the numerical values for this company on every sheet.
The functionality is hidden in the three subroutines GetValue() ,
UpdateValue() , and UpdateChart() .
|
Forms and Controls |
The example document Burger Factory offers some forms and controls, which you can use to
order your desired burger type, beverage, topping, and sauce. By hitting the button
"Order now!", your order will be placed.
|
Additional information:
OpenOffice.org 1.1 Basic language binding
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
Object Linking and Embedding (OLE) examples
SDK home examples overview
Example |
Description |
ActiveX Control |
The ActiveX control shows an example of access to UNO through COM technology.
It requires a properly installed StarOffice version 6.0 or OpenOffice 1.0 or newer.
This is a Lite ActiveX control so it can be used only in containers that
allow the use of such controls. It can be activated with an <OBJECT> tag from
a html-page to embed a document. Without any parameters a new writer document will be
opened for editing. For more details please see the
README.
|
WriterDemo |
This Visual Basic Script creates an empty text document and inserts text, a table, and a
text frame.
|
Inserting Tables |
This Delphi program is an application that creates a connection to the StarOffice server
and an empty text document. Later, you can insert tables specified by the table name
and the database pointer prefix, get the database pointer specified by the table name and
the cell address, and get the content of a cell specified by the database pointer.
|
Additional information:
OLE language binding
|
 |
|
|
|
 |
|
|
 |
|
|
 |
|
|
Copyright 2003 Sun Microsystems, Inc.
 
|