<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<div class="Acta1">
<h2>OpenOffice.org 1.1 Press Release</h2>
<p>2003-10-01</p>
<dl>
  <dt><strong>Contents</strong></dt>
  <dd><a href="#PR">Press Release Text</a>
  <dd> <a href="#Features">New Features</a> </dd>
  <dd> <a href="#Availability">Availability</a> <a href="#quotes">Relevant Quotes</a> </dd>
  <dd> <a href="#International">Internationalization</a> </dd>
  <dd> <a href="#Accessibility">Accessibility</a> </dd>
  <dd> <a href="#Innovations">3rd-Party Innovations</a> </dd>
  <dd> <a href="#SDK">Software Developers Kit</a> </dd>
  <dd> <a href="#Links">Additional Links</a> </dd>
  <dd> <a href="../press/1.1/">Press
      Kit</a> </dd>
  <dd> <a href="//dev_docs/features/1.1/">New Feature
      Highlights </a> </dd>
  <dd> <a href="../dev_docs/features/1.1/index.html">Complete List of Features</a> </dd>
  <dd> <a href="http://marketing.openoffice.org/contacts.html">Press Contacts</a> </dd>
</dl>
<p>
<hr>
<p class="Header"><a name="PR"></a>Press Release Text</p>

<p class="Header">OPENOFFICE.ORG ANNOUNCES RELEASE 1.1 </p>
<p>OpenOffice.org is proud to announce the immediate availability for
  download of the new version of the award-winning office suite, 
  OpenOffice.org 1.1, for Windows (98/ME/NT/2000/XP), Linux (x86 &amp; 
  PowerPC), and Solaris[tm] Operating System (SPARC platform edition) in 
  English, German, French, Italian, Spanish, Chinese (simplified &amp; 
  traditional), Korean and Japanese.</p>
<p>The suite comes complete with word-processor, spreadsheet, presentation
  and various other components and provides a revolutionary open, 
  future-proof XML file format. The new release introduces many 
  enhancements and new features including native one-click PDF (Adobe 
  Acrobat) export, Macromedia Flash export for presentations and drawings, 
  faster load-time, enhanced MS Office file compatibility, accessibility 
  support and a smoother look and feel.</p>
<p> The suite, according to the terms of its open source licenses (LGPL &amp; 
  SISSL), is free for all to use, improve, modify, and to redistribute to 
  anyone.</p>
<p>"The release of Version 1.1 of OpenOffice.org is a major achievement for the
  OpenOffice.org community," said Curtis Sasaki, vice president of desktop solutions
  at Sun Microsystems, Inc. " With the successful inaugural Openoffice.org conference
  earlier in the year, the energy in the community drove many corporate and individual
  contributors to work together with Sun to create the most stable and powerful
  release of the OpenOffice.org application so far, which is the core of the
  new StarOffice[tm] 7 Office Suite.</p>
<p>&quot;New features like the native PDF export and the support for assistive
   technologies will accelerate the fast growing, worldwide adoption of 
  OpenOffice.org, StarOffice as well as more secure, alternative desktop 
  environments. We've seen community members work for days on end to 
  create translated versions. This kind of enthusiasm helped to make 
  OpenOffice.org one of the leading open source projects today,&quot; adds 
  Sasaki. </p>
<p>Versions for Mac OS X, FreeBSD and Solaris (x86) will be available later
    this year. Other platforms continue in development.</p>
<p>The suite and it's source code can be downloaded from
  our <a href="../dev_docs/source/1.1.0/">Download Page</a>.</p>
<hr>

<p class="Header">About OpenOffice.org</p>
OpenOffice.org is the home of the open source project and its community of developers,
users and marketers responsible for the on-going development of the OpenOffice.org
product. The mission of OpenOffice.org is to create, as a community, the leading
international office suite that will run on all major platforms and provide access
to all functionality and data through open-component based APIs and an XML-based
file format. The OpenOffice.org office suite runs on FreeBSD, Windows (98/ME/2000/XP),
Linux (x86 &amp; PowerPC), Mac OS X and Solaris; while ports for other operating
systems and hardware platforms, including IRIX, HP-UX, Tru64, Linux (Alpha),
Linux (ARM), Linux (Itanium2) and others, are in various stages of development.
OpenOffice.org 1.1 -- soon available across multiple platforms in over 60 native
languages -- is written in C++ and has documented API's licensed under the GNU
Lesser General Public License (LGPL) and Sun Industry Standards Source License
(SISSL) open source licenses. OpenOffice.org has tracked over 20 million downloads
in the life of the project. The founder and sponsor of the OpenOffice.org project
is Sun Microsystems, Inc. Sun markets an office suite based on the OpenOffice.org
code called StarOffice.
CollabNet (www.collab.net) hosts and manages the project.
<p></p>

<hr>
<p class="Header"><a name="Features"></a>New Features</p>
<p>Some of the new features and improvements included in OpenOffice.org 1.1 are:</p>
<p class="Header">Native Export to Adobe PDF (Portable Document Format)</p>
<p>This feature allows any document, spreadsheet or presentation to be exported
  directly to Adobe PDF format without the need for additional expensive software.</p>
<p class="Header">Native Export to Macromedia Flash</p>
<p> This feature allows presentations to be exported directly to the Macromedia
  Flash format, allowing for easy distribution or embedding into web pages, without
  the need for additional expensive software.
</p>
<p class="Header">Faster Load Time</p>
<p> OpenOffice.org developers have streamlined the code to improve upon the time
  taken to initially load the suite. Also, a progress bar has been added to the
  splash screen.
</p>
<p class="Header">Improved International Support</p>
<p> Support for languages such as Hindi, Arabic, Thai, Hebrew and Chinese has
  been enhanced with improved vertical and bi-directional writing technologies.
</p>
<p class="Header">New Mobile Device Formats</p>
<p> Support for AportisDoc (Palm), Pocket Word and Pocket Excel has been added
  for easier transfer of documents to PDA's and Handheld Devices.
</p>
<p class="Header">Improved Compatibility with MS Office Formats</p>
<p> Filters have been added to support MS Office 2003 XML Wrapped documents and
  improvements have been made to the filters for MS Office 95/97/2000/XP documents.
</p>
<p class="Header">New Accessibility Features</p>
<p> New support for full keyboard navigation and control, tracking system color
  scheme and theme settings, accessibility in the help system and documents,
  Assistive Technologies via Java accessibility APIs. </p>
<p> For a more complete list of features please visit
  the <a href="../dev_docs/features/1.1/">Features page</a>. </p>
<hr>

  <p class="Header"><a name="Availability"></a>Availability </p>

<p> OpenOffice.org 1.1 is immediately available for Windows (98/ME/NT/2000/XP),
  Linux (x86 and PowerPC) and Solaris (SPARC) in English (US and UK), German,
  French (FR), Italian, Spanish, Swedish, Chinese (simplified), Chinese (traditional),
  Korean, and Japanese.&nbsp; There are over 60 language localization projects
  currently ongoing in the worldwide OpenOffice.org development project.</p>
<p> You can download the suite at your convenience from the <a
 href="//">OpenOffice.org Web site</a> or order a CD-ROM
  from a <a href="http://distribution.openoffice.org/cdrom/">community distributor</a> near
  you.</p>
<p>
<hr>
<p class="Header"><a name="quotes"></a>Relevant Quotes</p>
<p>
<p class="Header">Curtis Sasaki, Sun Microsystems, Inc. --</p>
<p class="indent">"The release of Version 1.1 of OpenOffice.org is a major achievement for
  the OpenOffice.org community.&nbsp; With the successful inaugural Openoffice.org
  conference earlier in the year, the energy in the community drove many corporate
  and individual contributors to work together with Sun to create the most stable
  and powerful release of the OpenOffice.org application so far, which is the
  core of the new StarOffice 7 Office Suite."</p>
<p class="indent"> "New features like the native PDF export and the support for assistive technologies
  will accelerate the fast growing, worldwide adoption of OpenOffice.org, StarOffice
  as well as more secure, alternative desktop environments.&nbsp; We've seen
  community members work for days on end to create translated versions.&nbsp; This
  kind of enthusiasm helped to make OpenOffice.org one of the leading open source
  projects today."</p>
<p class="Header">Michael Meeks, Novell Ximian Services --</p>

<p class="indent"> "OpenOffice.org is a crucial component of the Free software desktop, with innumerable
  improvements in 1.1. The GNOME integration in 1.1 and beyond makes OpenOffice.org even
  more usable and powerful.&nbsp; Personally it's been a pleasure working with
  the OpenOffice.org team - get involved if you can."</p>
<p class="Header">Horst Br&auml;uner, City of Schw&auml;bisch-Hall, Germany --</p>
<p class="indent">"OpenOffice.org is, in addition to Mozilla, THE open source
  application that will be deployed on all workstations.&nbsp; It will be used
  on both the remaining Windows PC's as well as the Linux desktop systems.&nbsp; Due
  to the fact that OpenOffice.org is open source, we also recommend OpenOffice.org
  for use at
  home to all our employees.&nbsp; Everybody receives an OpenOffice.org CD as
  part of our migration training or upfront on demand.&nbsp; In case of
  installation problems, we support users with our own competency center.&nbsp; We
  decided to go with OpenOffice.org due to it's future-proof XML file format." </p>
<p class="Header">Dr. Martin Sommer, Product Manager Consumer Products, SuSE
  Linux AG, N&uuml;rnberg --</p>
<p class="indent"> "OpenOffice.org is one of the most important software packages on SuSE Linux,
  because it lowers the transition hurdles for Linux novices coming from Windows (where MS Office is one of the most important applications),
  and it provides an important daily work tool for professional users and developers.&nbsp; File
  exchange between friends, companies and authorities is very easy between OpenOffice.org
  and MS Office, and OpenOffice.org's compatibility with MS Office file formats
  is the best on Linux." </p>
<p class="Header">L. E. V&aacute;squez, National University of Colombia --</p>
<p class="indent"> "For a country like Colombia &#8211; which some call "third world" --
  to get state-of-the-art technology means big money and enormous dependence
  upon a single entity.&nbsp; So when you can get such technology for "free" --
  and your people can collaborate directly with its developers -- it is really
  important to you.</p>
<p class="indent"> I am referring to OpenOffice.org and StarOffice, the open source project
  and products founded by Sun Microsystems.</p>
<p class="indent">Since August 1999, when Sun first made StarOffice 5.1
    available as a free download, a lot of Colombians have used both the StarOffice
    and OpenOffice.org
  suites with much success.&nbsp; Because the products are a crucial component
  of the Free software desktop, we see more and more private and government agencies
  deploying or evaluating OpenOffice.org/SO for partial or full replacement of
  MS Office.</p>
<p class="indent"> In Colombia, OpenOffice.org/SO have reached significant
    penetration (between 30 and 50 percent) in the small office home office ("SOHO")
  and education (both public and private), including K-12 and Universities.</p>
<p class="indent"> OpenOffice.org and StarOffice -- with their future-proof
    XML file format and excellent price and performance &#8211; give my people
  confidence when we look toward the future."</p>
<p class="Header">In the Community</p>
<p class="indent">"The new features are nice; I've been using Export to PDF much
  more than I expected," said Ed Buck, consultant and project contributor, "but
  to me the best part is what's under the hood.&nbsp; OpenOffice.org 1.1's native
  XML file format supercedes any single new or old feature.&nbsp; This open,
  standard and universally accepted file format today allows users to escape
  file format lock-in and companies to bring their IT software AND hardware budgets
  back under their own control.&nbsp; In the enterprise context, open XML undeniably
  adds shareholder value; for individuals, it makes for happy work."</p>
<p class="indent"> Remarks Anthony Long, contributor to the OpenOffice.org
    Marketing Project: "Well,
  we'd just like to emphasize that OpenOffice.org 1.1 runs on Windows. Although
  about 63% of our users run the OpenOffice.org suite on Windows, many other
  people are still unaware that some open source software does run on Windows.
  So, if your computer's operating system is any version of Windows, then OpenOffice.org
  1.1 will run smoothly and offer a very stable and productive experience. Plus,
  you never have to worry about your software vendor discontinuing your file
  format." </p>

<p class="Header">In the Press</p>
<p> Christopher Null,<em> PC World</em>
<p class="indent"> "The Best Software You're Not Using"
<p class="indent"> Once you get familiar with OpenOffice.org's slightly geeky
  interface, this free office suite can be a reasonable alternative to the old
  standbys of Word,
  Excel, and PowerPoint. The similarities are often uncanny, from spreadsheet
  currency formatting to autocorrecting typos; plus, you can build PowerPoint-like
  presentations just as you would with the real deal. You shouldn't run into
  compatibility problems with Microsoft Office applications: Opening Word and
  even complicated Excel files works fine--tables and formulas come through intact.
  (free)
<p class="indent"> <a
 href="http://four.pcworld.shopping.yahoo.com/yahoo/article/0,aid,112028,00.asp">http://four.pcworld.shopping.yahoo.com/yahoo/article/0,aid,112028,00.asp</a></p>
<p> 
  David Pogue, <em>The New York Times</em>
<p class="indent"> "The world waited for a contender that was so compelling...Now there
  is one. It's called OpenOffice, and it has a killer feature: it's free... Every
  now and then, you get what you don't pay for."
<p class="indent"> <a
 href="http://query.nytimes.com/gst/abstract.html?res=F10D15F63C5B0C738EDDAF0894DA404482">http://query.nytimes.com/gst/abstract.html?res=F10D15F63C5B0C738EDDAF0894DA404482</a></p>
<p> 
  Rob Pegoraro, <em>The Washington Post</em></p>
<p class="indent"> OpenOffice.org 1.0   "either matches or beats Microsoft Office... It's
  hardly perfect, but somebody in Redmond ought to be worried about this program... The
  OpenOffice suite opened every Word, Excel and PowerPoint file I tried. Most
  looked identical or nearly so. One even looked better than in Word -- OpenOffice
  showed an embedded author's note without my having to turn on the revision-tracking
  option."
<p class="indent"> <a
 href="http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&amp;node=&amp;contentId=A4246-2002May11&amp;notFound=true">http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&amp;node=&amp;contentId=A4246-2002May11&amp;notFound=true</a></p>
<p class="Header">In Schools</p>
<p class="indent"> Chuck Hunnefield, Technology Coordinator, Linden Hall School for Girls (Lititz,
  PA, USA), explains, "We are a boarding school.&nbsp; Almost every student
  this year either brought a computer or leased one from us.&nbsp; We are also
  an international school with students from all over the world.&nbsp; The computers
  they bring have all sorts of different software installed, different (and often
  incompatible) versions of [the leading office suite and], WordPerfect, Lotus,
  DOS-based apps, etc.&nbsp; Some don't even have any office software installed
  at all!"&nbsp; OpenOffice.org "allowed us to finally be able to
  standardize what we use on computer lab computers, student computers, teacher
  computers, and even the teacher's home computers if they wish.&nbsp; All this
  at minimal cost to the school or its students." </p>
<p>
<hr>
<p class="Header"><a name="International"></a>Internationalization<p>

<p class="Header">Native Languages (Native-Lang)</p> 


<p class="indent">There are 14 active Native-Lang Web sites representing as many communities where
development and marketing of the OpenOffice.org software take place in the local
language:
</p>
<p class="indent"> Basque**, Chinese, Czech, Danish, Dutch, English (US), French (FR), Finnish,
  German, Hindi, Italian, Laotian**, Portuguese (Brazilian), Romanian, Slovak**,
  Spanish, Thai, Turkish, Vietnamese**</p>
<p class="indent"> ** in formation</p>
<p class="Header">Software Language Localization ("l10n") Projects
<p class="indent">OpenOffice.org software is the primary office suite for a growing number
  of people around the world who have never before accessed the desktop in their
  1st language:</p>
<p class="indent"> Arabic*, Basque, Bulgarian*, Bosnian*, Catalan*, Chinese
    (simplified), Chinese (traditional), Corsican*, Croatian*, Croatian*, Czech*,
    Danish*, Dutch*, English
  (US), English (British), Esperanto*, Finnish*, French (FR), Galician*, German,
  German (Austrian), German (Swiss), Greek*, Hungarian*, Icelandic*, Hindi, Tamil,
  Devanagari (Konkani, Marathi, Sanskrit), Gujarati, Gurmukhi (Punjabi),&nbsp; Oriya,
  Bengali, Telugu, Malayalam, Kannada, Bahasa Malaysia*, Malaysian Chinese*,
  Malaysian Tamil*, Italian, Japanese, Korean, Latvian*, Lithuanian*, Norwegian
  (Nyorsk, Bokmal)*, Polish*, Portuguese (Brazilian), Portuguese (Iberian)*,
  Romanian*, Russian, Kinyarwanda (Rwanda)*, Serbian*, Slovak, Slovenian*, Zulu*,
  Sesotho*, Spanish, Swedish, Thai, Turkish, Ukranian*, Vietnamese*, Welsh*,
  Yiddish*</p>
<p class="indent"> * in development</p>
<p>
<hr>
<p class="Header"><a name="Accessibility"></a>Accessibility
</p>
<p class="indent"> OpenOffice.org release 1.1 includes additional Assistive Technology
  components.&nbsp;&nbsp; Of
  particular interest is the availability and integration (via separate download)
of Sun's Java access bridge available from&nbsp; <a
 href="http://www.sun.com/access/">http://www.sun.com/access/</a>.
<p class="indent"> This new Java component promises an exciting future for both StarOffice and
  OpenOffice.org as it allows for integration of such popular programs as Freedom
  Scientific's JAWS and Ai Squared's ZoomText. While not 100% complete at this
  time Sun's Accessibility Program continues to provide and promote equality
  of access in accordance with US Federal Regulation 508. Parties interested
  in participating in this project component are invited to review <a href="http://www.sun.com/access">http://www.sun.com/access</a> and <a href="http://ui.openoffice.org/accessibility/index.html">http://ui.openoffice.org/accessibility/index.html</a>.</p>
<p>
<hr>
<p class="Header"><a name="Innovations"></a>3rd- Party Innovations
</p>
  

<p class="Header">WordPerfect &amp; LaTeX Conversion Tools</p>
<p class="indent">A WordPerfect filter application, developed by William Lachance and Marc
  Maurer, is now available to assist users migrating from WordPerfect to OpenOffice.org
  or Sun's StarOffice.</p>
<p class="indent"> An OpenOffice.org Writer-to-Latex conversion tool, developed by Henrik Just,
  is now available to allow users to produce pre-production output.</p>
<p class="indent"> Combined, these two tools (available as applications separate from OpenOffice.org1.1)
  serve to position the OpenOffice.org and Sun StarOffice wordprocessors as a
  premier tool for cross platform document processing.</p>
<span class="indent"><br>
</span><hr
>
<p class="Header"><a name="SDK"></a>Software Development Kit (SDK)
</p>
<p class="indent"> The OpenOffice.org SDK is an add-on for the OpenOffice.org office suite.&nbsp; It
  provides the necessary tools and documentation for programming the OpenOffice.org
  API's and creating own extensions (UNO components) for OpenOffice.org.</p>
<p class="indent"> Using the OpenOffice.org SDK developers can generate, modify, export and
  print different document types.&nbsp; New add-ons for OpenOffice.org can be
  built and easily deployed using the C++ or Java technologies.&nbsp; The SDK
  also provides a Java component that allows to embed OpenOffice.org into Java
  GUI applications.</p>
<p class="indent"> Developers who are new to OpenOffice.org will also find the OpenOffice.org
  developer page useful.&nbsp; It can be found at:
<p class="indent"> <a href="/project/development/index.html">http://development.openoffice.org</a>
<p>
<hr>
<p class="Header"><a name="Links"></a>Additional Links</p>
<p><strong> OpenOffice.org 1.1 download</strong></p>
<p class='indent'> <a href="//dev_docs/source/1.1.0/index.html">//dev_docs/source/1.1.0/index.html</a> </p>
<p><strong> OpenOffice.org CD-ROM (Community Distributor links) </strong></p>
<p class='indent'> <a href="http://distribution.openoffice.org/cdrom/#cdrom">http://distribution.openoffice.org/cdrom/#cdrom</a> </p>
<p><strong> OpenOffice.org1.1's open, standard XML file format </strong></p>
<p class='indent'> <a href="http://www.w3.org/XML/">http://www.w3.org/XML/</a> </p>
<p class='indent'> <a
 href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office">http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office</a> </p>
<p><strong> OpenOffice.org Native-Lang Projects </strong></p>
<p class='indent'> <a href="http://native-lang.openoffice.org/">http://native-lang.openoffice.org/</a> </p>
<p><strong> OpenOffice.org Localization (l10n) Project </strong></p>
<p class='indent'> <a href="http://l10n.openoffice.org/localization_responsibilities.html">http://l10n.openoffice.org/localization_responsibilities.html</a> </p>
<p><strong> OpenOffice.org Accessibility </strong></p>
<p class='indent'> <a href="http://ui.openoffice.org/accessibility/index.html">http://ui.openoffice.org/accessibility/index.html</a> </p>
<p><strong> Sun Accessibility </strong></p>
<p class='indent'> <a href="http://www.sun.com/access/">http://www.sun.com/access/</a> </p>
<p><strong> JAWS: </strong></p>
<p class='indent'> <a href="http://www.freedomscientific.com/fs_products/software_jaws.asp">http://www.freedomscientific.com/fs_products/software_jaws.asp</a> </p>
<p><strong> ZoomText: </strong></p>
<p class='indent'> <a
 href="http://www.aisquared.com/Products/ZoomText8_mag_reader/FreeTrial/Z8FreeTrial.htm">http://www.aisquared.com/Products/ZoomText8_mag_reader/FreeTrial/Z8FreeTrial.htm</a> </p>
<p><strong> WordPerfect Conversion Tool </strong></p>
<p class='indent'> <a href="http://libwpd.sourceforge.net/">http://libwpd.sourceforge.net/</a> </p>
<p><strong> LaTeX&nbsp; Conversion Tool </strong></p>
<p class='indent'> <a href="http://www.hj-gym.dk/%7Ehj/writer2latex/">http://www.hj-gym.dk/~hj/writer2latex/ </a> </p>
<p><strong> Other 3rd party innovations </strong></p>
<p class='indent'> <a href="/project/development/index.html">http://development.openoffice.org</a> </p>
<p><strong> OpenOffice.org SDK (Software Developers Kit) </strong></p>
<p class='indent'> <a href="//dev_docs/source/sdk/">//dev_docs/source/sdk/</a> </p>
<p><strong> More About OpenOffice.org </strong></p>
<p class='indent'> <a href="//about.html">//about.html</a> </p>
<p><strong> OpenOffice.org Marketing Contacts List (country leaders) </strong></p>
<p class='indent'> <a href="http://marketing.openoffice.org/contacts.html">http://marketing.openoffice.org/contacts.html</a> </p>
<p><strong> Review of OpenOffice.org 1.1 release candidate 2</strong></p>
<p class='indent'>"Making Microsoft's
    Office Team Even More Nervous"</p>
<p class='indent'> <a href="http://www.winplanet.com/winplanet/reviews/4940/1/">http://www.winplanet.com/winplanet/reviews/4940/1/</a> </p>
<hr>
</div>
</body>
</html>

