

<!--#include virtual="/doctype.html" -->
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <link href="/css/ooo.css" rel="stylesheet" type="text/css">
    
<title>Apache OpenOffice Software Development Kit (SDK)</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">

    
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
  </head>
  <body>
    <!--#include virtual="/brand.html" -->
    <div id="topbara">
      <!--#include virtual="/topnav.html" -->
      <div id="breadcrumbsa"><a href="/">home</a>&nbsp;&raquo;&nbsp;<a href="/api/">api</a>&nbsp;&raquo;&nbsp;<a href="/api/SDK/">SDK</a></div>
    </div>
    <div id="clear"></div>
      <!--#include virtual="/api/leftnav.html" -->
      
    <div id="content">
      
      
<h1>Apache OpenOffice Software Development Kit (SDK)</h1>

<p>The Apache OpenOffice Software Development Kit (SDK) is an add-on for OpenOffice. It provides the
  the necessary tools and documentation for programming the OpenOffice APIs and creating your own
  extensions (UNO components) for OpenOffice. The SDK will accompany new releases of OpenOffice.
</p> 
<p>The detailed developer documentation has been moved into the wiki for easier maintenance and better community 
collaboration. Please see the <a href="https://wiki.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide">Developer's Guide</a> online. 
This comprehensive guide (wiki book) provides, in more than 900 wiki pages, a detailed description of the 
OpenOffice API concepts, the OpenOffice UNO component model and how to use the API in the context
of the different application areas. At the close of each chapter, there is at least one example that shows 
how to use the API.
</p>
<p>Interested developers should start using this SDK for their implementations. Feedback is welcome via 
email on <a href="mailto:dev@api.openoffice.org">dev@api.openoffice.org</a>, and bugs should be reported 
as an <a href="https://www.openoffice.org/project_issues.html">IssueZilla</a> task. 
All requests for enhancement and new features will be collected and go into the planning of future versions of the SDK.
</p>

<h2>SDK Download</h2>
<p>Customize or extend your office installation with new functionality or simplify your daily 
  work by creating automated tasks. Test it and <a href="https://www.openoffice.org/download/sdk/index.html" title="download the SDK">download the SDK</a> to find out the power of Apache OpenOffice and its 
programmability features.

<h2>Features</h2>
<ul>
<li>detailed developer documentation online, (<a href="https://wiki.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide">Developer's Guide</a>)
  <ul>
    <li>easier maintenance
    <li>on demand PDF creation. It is possible to create a PDF from small parts only or from the whole wiki book
  </ul>
<li><a href="../docs/common/ref/com/sun/star/module-ix.html">IDL reference</a> with cross references to the
  Developer's Guide and vice versa.
<li><a href="../docs/cpp/ref/names/index.html">C/C++</a> and <a href="../docs/java/ref/overview-summary.html">Java</a> UNO 
  reference documentation.
<li>development tools
<li>examples in Java, C++, OpenOffice Basic
<li>minimal build environment for the examples
<li>run targets in the makefiles for easy running the examples
<li>use of the new deployment tool to integrate new components or Basic libraries in an existing office 
  installation.
</ul>

<h2>Changes with the OpenOffice.org 3.0 SDK</h2>
<p>The initial plan was to integrate the SDK as an optional part in the office installation directly. In the last 
minute we detected a high increase of the build time (packaging) because of the huge amount of files. That was 
not accpetable and we changed the initial plan. The SDK is still available as separate download.</p>
<p> Because of this last minute change the installation especially under windows is not perfect. The setup suggests
to install the SDK under the new base layer which is recommneded. Otherwise the configuration works not properly. 
This will change in the future.</p>
<p>Anyway the installation differs on the different platforms. On Mac OSX the SDK is completely separated because of 
the strcuture with the application bundle. On Windows and the other UNIX platforms the SDK is installed as a sub 
directory in the new base layer (introduced in OpenOffice.org 3.0) and is shared between different installations
based on the same base layer.<p>
<ul>
<li>Windows: c:/Program Files/OpenOffice.org/Basis 3.0/sdk
<li> Mac OSX: /&lt;somewhere&gt;/OpenOffice.org3.0_SDK
<li> Linux|Solaris (Unix general): /opt/openoffice.org/basis3.0/sdk.
</ul> 

<h2>Building the SDK</h2>
<p>All people who want to build a SDK from scratch should take account of the <a href="buildguide.html" 
title="link to the SDK build guide">SDK build guide</a>.

<hr style="width: 100%; height: 1px;">
<i>Last update: 11-Aug-2008</i>

      
    </div>
    <!--#include virtual="/footer.html" -->
  </body>
</html>
