<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Apache OpenOffice Press Kit</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="Marketing, OpenOffice, OpenOffice.org">
    <link rel="stylesheet" type="text/css" href="marketing.css">
</head>

    <body>

    <div id="MyContent">
        <h1>Press Kit</h1>

        <div id="pk-right">
            <h2>Quick Facts</h2>

            <h3>The Name</h3>
            Apache OpenOffice™

            <h3>The Community</h3>
            
            Registered Members: &gt;750,000<br>
            Developers: &gt;100 FTE<br>
            Committers: &gt; 500<br>

            <h3>The Software</h3>
            Version: 3.4<br>
            Downloads: &gt;40m<br>
            Applications: 6<br>
            Platforms: 8<br>
            Languages: 28<br>
            Development: &gt;20 yrs elapsed<br>
            Size: &gt;10,000 kloc<br>
            Licence: OSI approved<br>
            File format: ISO approved

            <h3>Licensing</h3>
            Source Code: Apache License 2.0<br>

            <h3>Major Contributors</h3>
            Sun Microsystems<br>
            Oracle<br>
            Novell, Inc.<br>
            Beijing Redflag CH2000<br>
            Red Hat, Inc.<br>
            IBM Corp.<br>
            Google Inc.

            <h3>Quick Links</h3>
            <a href="/product/">Product Information</a><br>
            <a href="/license.html">Licensing</a><br>
            <a href="/images/AOO_logos/AOO4_website_logo.png">Logo</a><br>
            <a href="/screenshots/">Screenshots</a><br>
            <a href="/faq.html">FAQ</a><br>
            <br>
        </div>

        <p>Key facts and figures about Apache OpenOffice for the media.</p>

        <h2>Naming</h2>

        <ul>
            <li>
                Name - we are <strong>Apache OpenOffice™</strong> (not <em>Open Office</em> or <em>OpenOffice</em>).  
             </li>

            <li>
                Apache OpenOffice is both the name of a software product and the name of the open-source project 
                which designs, develops, maintains, translates, tests, documents, supports, and 
                promotes the software.
            </li>
            <li>
                Note: Prior to version 3.4.0 the product was referred to as OpenOffice.org® and that term may still proper when referring to 
                these older releases.
            </li>
        </ul>



        <h2>Key points about the Apache OpenOffice Productivity Suite.</h2>

        <ol>
            <li>
                Apache OpenOffice provides <strong>everything most people need in an office 
                productivity suite</strong>. The main components of Apache OpenOffice 
                are:<br/>
                 <ul>
                     <li>
                         <a href="http://www.openoffice.org/product/writer.html">Writer</a>, a wordprocessor <a href="http://www.openoffice.org/product/pix/writer-big.png">(screenshot)</a>
                     </li>
                     <li>
                        <a href="http://www.openoffice.org/product/calc.html">Calc</a>, a spreadsheet <a href="http://www.openoffice.org/product/pix/calc-big.png">(screenshot)</a>
                     </li>
                     <li>
                        <a href="http://www.openoffice.org/product/impress.html">Impress</a> a presentation editor <a href="http://www.openoffice.org/product/pix/impress-big.png">(screenshot)</a>
                     </li>
                     <li>
                        <a href="http://www.openoffice.org/product/draw.html">Draw</a> a vector graphics editor <a href="http://www.openoffice.org/product/pix/draw-big.png">(screenshot)</a>
                     </li>
                     <li>
                        <a href="http://www.openoffice.org/product/base.html">Base</a> database front-end <a href="http://www.openoffice.org/product/pix/base-big.png">(screenshot)</a>
                     </li>
                </ul>
                Apache OpenOffice is stable, reliable, and robust, the product of over twenty years' 
                development. Unlike its major competitor, it was designed from the start as a 
                single piece of software, which makes for higher quality software and a more 
                consistent user experience. It is actively developed, with several releases 
                every year.<br>

            </li>

            <li>
                Apache OpenOffice is both <strong>easy to use and easy to migrate to</strong>, 
                for both experienced and beginners alike. It has a familiar user interface, and 
                is able to read and write the vast majority of legacy file formats (including 
                common Microsoft Office formats). It is supported in nearly 30 languages, with 
                active support, both community based (free) and from commercial organisations (paid-for).
            </li>

            <li>
                Apache OpenOffice is released under an open-source licence (Apache License 2.0), which 
                means it may be used <strong>free of any licence fees, for any purpose</strong>: 
                private, governmental, commercial, etc. Once acquired it may be installed on an unlimited number of computers, 
                and may be copied and distributed without restriction. Apache OpenOffice 
                supports extensions, allowing users to add on extra functions easily from <a href="http://extensions.openoffice.org/">an 
                extensions repository</a>. This is a key differentiator from the competition.
            </li>
        </ol>

        <p>
        Apache OpenOffice is available on all major computing platforms and is supported 
        in nearlt thirty languages. Our best estimate is that Apache OpenOffice currently 
        enjoys over 15% market share for office productivity suites.
        </p>

        <h2>Key points about the Apache OpenOffice Community</h2>

        <p>
        Apache OpenOffice is a project of the Apache Software Foundation, a US-based non-profit organization
        dedicated to publishing free software for the public good.
        </p>

        <p>
        The overwhelming majority of Community members are volunteers. A small number are sponsored by their employers to work on 
        Apache OpenOffice. Most of these work in software development. 
        </p>

        <h2>Concise history of Apache OpenOffice</h2>

        <p>
        Apache OpenOffice is a mature software product, tracing its origins back over 
        twenty years to a commercial software house in Germany, StarDivision. Following 
        the acquisition of StarDivision by Sun Microsystems in April 1999,  
        OpenOffice.org version 1.0 was released as open-source software on May 1st 2002. It 
        proved hugely successful, and after more than 49 million recorded downloads, 
        version 2.0 was released on 20th October 2005.  OpenOffice.org 2 removed the 
        last barriers to migration with a new user interface, improved support for 
        competitors' file formats, and a new integrated database component. It also 
        became the first office suite to support the new Open Document Format for office 
        applications (ODF) natively.  OpenOffice.org 3 was announced on October 13, 2008, 
        and recorded 100 million downloads by October 28, 2009.   Oracle acquired Sun Microsystems in
        2010.  In June 2011 Oracle contributed the source code and trademarks to the Apache Software Foundation,
        enabling the OpenOffice.org community to achieve their dream of having OpenOffice maintained as a 
        community-run open source project at an independent foundation. In 2012 the project voted to rename itself
        to Apache OpenOffice.
        </p>

        <h2>Logos, etc</h2>

        <p>
        Logos may be found <a href="/art/galleries/logos/">here</a>
        </p>

        <h2>Press Releases</h2>

        <p>
        We keep an on-line <a href="press_releases.html">archive of press releases</a>.
        </p>

        <p>
        We also have a low volume <em>announcements</em> mailing list; you can <a href="http://www.openoffice.org/servlets/SummarizeList?listName=announce">browse 
        an archive</a> of these announcements, or subscribe to the list by sending a 
        blank email to <a href="mailto:announce-subscribe@openoffice.apache.org">announce-subscribe@openoffice.apache.org</a>.
        </p>

        <h2>Press Contacts</h2>

        <p>
        Press inquires should be sent to <a href="mailto:press@openoffice.apache.org">press@openoffice.apache.org</a>.
        </p>


    </div>
    </body>
</html>
