<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>OpenOffice.org 3.0 Beta Announcement</title>
</head>
<body>
<h2>OpenOffice.org 3.0 beta is ready for testing</h2>
<p>
The OpenOffice.org Community is pleased to announce that the public beta
release of OpenOffice.org 3.0 is now available. This beta release is
made available to allow a broad user base to test and evaluate the next
major version of OpenOffice.org, but is not recommended for production
use at this stage.
<p>
If you are a regular user of OpenOffice.org, here's a great opportunity
to help us make the next release the best ever.

<h2>What's new in OpenOffice.org 3.0?</h2>
<p>
The most immediately visible change to OpenOffice.org 3.0 is the new
"Start Centre", new fresh-looking icons, and a new zoom control in the
status bar. A closer look shows that 3.0 has a myriad of new features.
Notable Calc improvements include a new solver component; support for
spreadsheet collaboration through workbook sharing; and an increase to
1024 columns per sheet. Writer has an improved notes feature and
displays of multiple pages while editing. There are numerous Chart
enhancements, and an improved crop feature in Draw and Impress.
<p>
Behind the scenes, OpenOffice.org 3.0 will support the upcoming
OpenDocument Format (ODF) 1.2 standard, and is capable of opening files
created with MS-Office 2007 or MS-Office 2008 for Mac OS X (.docx,
.xlsx, .pptx, etc.). This is in addition to read and write support for
the MS-Office binary file formats (.doc, .xls, .ppt, etc.).
<p>
OpenOffice.org 3.0 will be the first version to run on Mac OS X without
X11, with the look and feel of any other Aqua application. It introduces
partial VBA support to this platform. In addition, OpenOffice.org 3.0
integrates well with the Mac OS X accessibility APIs, and thus offers
better accessibility support than many other Mac OS X applications.
<p>
A more detailed guide to the features can be found at
<a href="http://marketing.openoffice.org/3.0/featurelistbeta.html">
http://marketing.openoffice.org/3.0/featurelistbeta.html</a>

<h2>Beta Availability</h2>
<p>
OpenOffice.org 3 beta is immediately available in US English for
MS-Windows, GNU/Linux, Mac OS X and OpenSolaris platforms from
<a href="http://download.openoffice.org/3.0beta">
http://download.openoffice.org/3.0beta</a>.
This page also contains details
of where to find localized builds and language packs as they become
available. For more details, please consult the appropriate native
language project - see
<a href="http://projects.openoffice.org/native-lang.html">
http://projects.openoffice.org/native-lang.html</a>
<p>
Help us gathering bugs in May!
<p>
In order to help us release OpenOffice.org 3.0 on schedule in September,
users of the beta release are encouraged to report any bugs, issues or
errors at
<a href="http://qa.openoffice.org">
http://qa.openoffice.org</a>.
<br>
If you would like to test just the new features, there is a list of test
cases by component at<br>
<a href="http://qa.openoffice.org/ooQAReloaded/TestcaseSpecifications/OpenOffice.org_3.0">
http://qa.openoffice.org/ooQAReloaded/TestcaseSpecifications/OpenOffice.org_3.0</A>
<br>
If you are nervous about reporting bugs through the formal bug reporting
system, you can simply email details to the user support mailing lists
<a href=" http://www.openoffice.org/mail_list.html">
http://www.openoffice.org/mail_list.html</a>
<br>
The developers look forward to receiving your feedback on this beta
release of OpenOffice.org!
<p>
"2008 - the year of 3"
</body>
</html>
