<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" />
<head profile="http://www.w3.org/2005/10/profile">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>OpenOffice Awards</title>
</head>

<body>
  <h1>OpenOffice Awards</h1>

  <p>Welcome to the <strong>OpenOffice Awards</strong> page.</p>

  <p>
    <em>
      If you know of a publication, magazine, institution, organisation or other body which has given OpenOffice
      an award recently, and you would like to let more people know about it, send us an email with all the details to:
      <a href="mailto:marketing@openoffice.apache.org">marketing@openoffice.apache.org</a>.
    </em>
  </p>

  <h2 style="clear: both;">Award from GIGA.de</h2>

  <p>
	<a href="http://www.giga.de/">
	  <img style="float: left;" src="images_awards/giga_award_2015_1176254_software.png"
      width="100" height="100" alt="GIGA.de award 2015"/>
	</a>
    &nbsp;GIGA.de and their users rated OpenOffice as #25 in Germany with >20 Mio. visits per month.
  </p>
  <br /><br />

  <h2 style="clear: both;">CHIP Top-Downloads of the Year - January 2014</h2>
	
  <p>
    <img style="float: right;" src="images_awards/CHIP-Top-Downloads-2013.png"
    alt="CHIP award 2013"/>
    CHIP Online reported their Top 100 downloads from 2013, including proprietary and open source downloads. We were
    <a href="http://www.chip.de/bildergalerie/Top-100-Downloads-des-Jahres-Galerie_53514176.html?show=91">
    #9 overall with over 4.3 million downloads</a> from their website.</a>.
  </p>

  <h2 style="clear: both;">InfoWorld's Bossie (Best Of Open Source) 
      Awards - September 2013</h2>
	
<p>We won in the category of <a href="http://podcasts.infoworld.com/slideshow/119867/bossie-awards-2013-the-best-open-source-desktop-and-mobile-software-226979#slide8">Best Open Source Desktop and Mobile Software </a>.
The citation said, "OpenOffice 4.0 proved to be a solid step forward from its predecessors -- and a good sign that the Apache Foundation's stewardship was all for the better"</p>
	
	
 <h2 style="clear: both;">About.com Readers' Choice Award - April 2013</h2>


 <p><img style="float: left;" src="images_awards/Readers Choice Awards 2013 Winner for Office Software.png"
  alt="Award"/>We won in the category of <a href="http://office.about.com/od/ReaderResponse/ss/Readers-Choice-2013-Award-Winners-In-Office-Software_3.htm">Favorite Business Office Software</a>.
  </p>

  <h2 style="clear: both;">InfoWorld's Bossie (Best Of Open Source) 
      Awards - September 2012</h2>


  <h2 style="clear: both;">CHIP Online Top Download Award - December 2012</h2>

 <p><img style="float: left;" src="images_awards/chip2012.png"
  alt="Award" />A <a href="http://www.chip.de/bildergalerie/Top-100-Downloads-des-Jahres-Galerie_53514176.html?show=91"> 
  Top-10 performance for OpenOffice</a>, made more impressive by the fact that this
  was looking at downloads of both open source and proprietary software packages.</p>

  <h2 style="clear: both;">InfoWorld's Bossie (Best Of Open Source) 
      Awards - September 2012</h2>

  <p><img style="float: right;" src="images_awards/bossie-2012.png"
  alt="Award" />We received two Bossie Awards in 2012, both in the Desktop 
  category.</p> 
    <p>The first award was for the <a 
  href="http://www.infoworld.com/slideshow/64914/bossie-awards-2012-the-best-open-source-desktop-applications-202288#slide4">Apache OpenOffice 
  application</a> and the second was for the <a 
  href="http://www.infoworld.com/slideshow/64914/bossie-awards-2012-the-best-open-source-desktop-applications-202288#slide5">OpenOffice Templates repository</a>.</p>
    
  <h2 style="clear: both;">UpdateStar Editor's Choice 2012 Award - July 
    2012</h2>

  <p><img style="float: left;" src="images_awards/ec2012.png"
  alt="Award" />The <a href="http://openoffice-org.updatestar.com/"> 
  UpdateStar Editor's Choice Award</a> is given only to a small group of top 
  software products leading in their field.</p>

  <h2 style="clear: both;">PC för Alla, Number 4 on Top 20 List - July 2012</h2>

  <p><img style="float: left;" src="images_awards/pcforalla2012.png"
  alt="Award" />PC för Alla, Sweden's largest computer magazine, awarded us a medal for
	  being on their <a href="http://pcforalla.idg.se/2.1054/1.456823">Top20 List</a> for free downloads.</p>
	
	
  <h2 style="clear: both;">Linux Journal 2011 Readers' Choice Award for
  <em>Best Single Office Program</em></h2>

  <p><img style="float: right;" src="images_awards/ReadersChoice2011.png"
  alt="Award" /><em>Award given to OOWriter</em> - see the <a href=
  "http://www.linuxjournal.com/slideshow/readers-choice-2011">full article</a>.</p>
	
 <h2 style="clear: both;">Linux Journal 2010 Readers' Choice Award for
  <em>Best Office Suite as well as Best Single Office Program</em></h2>

	<p><em>Two awards:  OpenOffice.org as Best Office Suite and Writer as Best Single Office Program.</em> - see the <a href=
  "http://www.linuxjournal.com/content/readers-choice-awards-2010">full article</a>.</p>
	
	
  <h2 style="clear: both;">Linux Journal 2009 Readers' Choice Award for
  <em>Favorite Office Program</em></h2>

  <p><a href="images_awards/linuxJournal_rc_5.pdf"><img style="float: right;"
  src="images_awards/readerschoice2009_102x180.jpg" alt=
  "Award" /></a><em>OpenOffice.org, bolstered no doubt by its recent 3.0
  release, retains its crown as your Favorite Office Program with the same
  share of your vote as last year, 85%.</em> - see the <a href=
  "http://www.linuxjournal.com/article/10451">full article</a>.</p>

  <h2 style="clear: both;">Computerbild Top 250 Download Award - January
  2009</h2>

  <p><img style="float: right;" src="images_awards/computerbild_top250.jpg"
  alt="Award" />The German magazine Computerbild awarded us their "Top 250
  Download Award" in January. They offer OpenOffice.org for download <a href=
  "http://www.computerbild.de/download/OpenOffice.org-904173.html">on their
  website</a> and it has been one of the most downloaded programs in their
  repository. Thanks, folks!</p>

  <h2 style="clear: both;">SOHO AWARDS 2008 for OpenOffice.org</h2>

  <p>OpenOffice.org was awarded the <a href=
  "http://www.soho-awards.org/jyusyo.html">SOHO AWARDS 2008</a> yesterday.
  Congratulations to this effort!</p>

  <h2 style="clear: both;">SourceForge.net 2008 Community Choice Awards</h2>

  <p>OpenOffice.org was awarded three prizes in the <a href=
  "http://sourceforge.net/community/cca08">SourceForge.net 2008 Community
  Choice Awards</a>! Thanks to all our users for their votes!</p>

  <h2 style="clear: both;">IT Reviews Recommended - May 2008</h2>

  <p><a href="http://www.itreviews.co.uk"><img style="float: right;" src=
  "images_awards/itr.jpg" alt="Award" /></a> <a href=
  "http://www.itreviews.co.uk/software/s607.htm">OpenOffice.org -
  OpenOffice.org 2.4 review</a> "The maturity of OpenOffice is fast winning
  over many of those still deep-rooted in a Microsoft Office way of working,
  and while this latest release isn't likely to tip too many more over the
  edge, it's a further move forward in the quest to be accepted as the
  legitimate alternative that it already is."</p>

  <h2 style="clear: both;">CHIP Download of the Day</h2>

  <p><img style="float: right;" src="images_awards/chip.png" alt=
  "Award" />OpenOffice.org wins <em>Download of the Day</em>.</p>

  <p>"CHIP Online is one of the leading computer websites in Europe with more
  than 30 million users and 200 million page impressions per month. We are
  pleased to inform you, that your software “OpenOffice” is the Download of
  the day 27/03/2008"</p>

  <p><a href="http://www.chip.de/downloads/OpenOffice_13004346.html">Download
  page</a></p>

  <h2 style="clear: both;">2008 Duke's Choice Award</h2>

  <p><img style="float: right;" src="images_awards/duke.gif" alt=
  "Award" />OpenOffice.org wins the 2008 Duke's Choice Award for <em>Fans'
  Choice</em>.</p>

  <p>"The Duke's Choice Awards program recognizes the year's most influential
  Java technology-based applications submitted by developers and companies
  around the world. The winners are chosen by Vice President and Sun Fellow
  James Gosling, along with a panel of Java technology experts at Sun."</p>

  <p><a href=
  "http://www.sun.com/aboutsun/pr/2008-05/sunflash.20080506.1.xml">Press
  release</a></p>

  <h2 style="clear: both;">Linux Journal's 2008 Readers' Choice Award -
  "Favorite Office Program"</h2>

  <p><img style="float: right;" src=
  "images_awards/ReadersChoice2008_logo.png" alt="Award" />"OpenOffice.org
  garnered a whopping 85% of the votes to win Favorite Office Program, while
  competitors AbiWord and KOffice squeaked in a barely perceptible 3% each.
  Nor did EIOffice, a program that has received much praise in our pages in
  the past, register more than a few votes. OpenOffice.org has become the de
  facto default office suite for Linux." <a href=
  "http://www.linuxjournal.com/article/10065">Linux Journal June 2008</a></p>

  <h2 style="clear: both;">IT Reviews Recommended - June 2007</h2>

  <p><a href="http://www.itreviews.co.uk"><img style="float: right;" src=
  "images_awards/itr.jpg" alt="Award" /></a> <a href=
  "http://www.itreviews.co.uk/software/s489.htm">OpenOffice.org -
  OpenOffice.org 2.2 review</a> "This is a fully functioning office suite
  that's compatible with Microsoft Office files, consisting of a word
  processor (Writer), a spreadsheet (Calc) and presentation (Impress)
  programs, along with a database (Base) and a vector drawing tool (Draw) ...
  There might not be any such thing as a free lunch, but there most certainly
  is a free office suite thanks to this excellent effort. In terms of
  functionality, version 2.2 polishes the various programs up nicely, and
  OpenOffice really is up there with the big players."</p>

  <h2 style="clear: both;">CHIP Product of the Year 2005 Polish Readers'
  Choice - February, 2006</h2>

  <p><a href="images_awards/dyplomooo.jpg"><img style=
  "border: 0px solid ; width: 95px; height: 133px; float: right;" src=
  "images_awards/dyplomooo-small.jpg" alt="Award" /></a> "OpenOffice.org 2.0
  has won the first prize in category <em>Office applications</em> to loud
  applause from the gathered prize winners. OpenOffice version 2.0 has won
  with an extra reserves of votes over other office applications in the
  famous computer magazine CHIP contest - prestigious Readers' Choice.
  Openoffice.org provides access to every functionality thanks to open API
  components and the pioneer, open, XML based file format."</p>

  <h2 style="clear: both;">PC Pro Labs Winner - Office Suites, December
  2004</h2>

  <p><img src="images_awards/pcpro_alist.gif" alt="PC Pro A List" align=
  "right" border="0" height="34" width="64" /> <strong>Verdict:</strong> "The
  <a href="http://www.pcpro.co.uk/labs/122/office-suites/products.html">best
  all-round office suite</a> is also the cheapest. With excellent Microsoft
  compatibility, a consistent interface and a good network of ad-hoc support,
  this is the king of the business tools."</p>

  <p><strong>Rating:</strong> <img src="images_awards/pcpro_6stars.gif" alt=
  "6 stars (the highest)" border="0" height="10" width="69" /><br />
  "We should point out here that <em>PC Pro</em> isn't throwing its weight
  behind OpenOffice purely by dint of the fact that it's free. We firmly
  stand by our assertion that it offers a more compelling proposition than
  Microsoft Office; its cross-platform support and the speed at which it's
  being developed leads us to believe that, together with StarOffice, it
  could - nay should - become the dominant force in office suites within the
  next three to five years.<br />
  "If you don't want to be left behind, now could be the time to switch."</p>

  <h2 style="clear: both;">OSDir.com—Editor's Choice Awards in Open Source,
  Best Application - Overall Desktop App</h2>

  <p><img src="images_awards/2003osdirwinnerbadge.gif" alt=
  "OSDir.com Editor's Choice 2003" style=
  "margin-left: 15pt; margin-bottom: 15pt;" align="right" border="1" height=
  "65" width="125" /> "There's a lot of talk about putting Linux on the
  Desktop across the enterprise next year. I'll give you one guess why this
  can be done?"</p>

  <h2 style="clear: both;">Best of Platform - Mac and Windows</h2>

  <p>"Picking any other application for this category is simply negligent. No
  other project is making inroads with other operating systems (outside of
  Linux) like the big OO."</p>

  <h2 style="clear: both;">Cybia - Reviews—"Best of the Best" Awards, Utility
  and Non-Graphics</h2>

  <p><img src="images_awards/cybia-award02.jpg" alt=
  "Cybia - Quality Software Award" style=
  "margin-right: 15pt; margin-bottom: 15pt;" align="left" border="1" height=
  "100" width="80" /> "All the power of an MS-compatible office suite without
  the high price tag.</p>

  <p>"For those of you who are familiar with the MS Office suite but can't
  justify the price tag, then take a look at this free alternative ...</p>

  <p>"<strong>OpenOffice</strong> is available as a free (but large) download
  or you can often purchase it on CD from a distributor for a nominal fee.
  There are versions for most Operating Systems.</p>

  <p>"The suite consists of several apps, the most useful probably being the
  word processor which is fantastic! The HTML editor is also handy and the
  drawing package pretty decent too.</p>

  <p>"A quality product that boasts plenty of powerful features. You
  shouldn't need much more than this for all your office needs!"</p>

  <h2 style="clear: both;">Open for Business—Open Choice Awards 2003, Best
  Office Suite</h2>

  <p><strong>September 20, 2003</strong></p>

  <p><img src="images_awards/openchoice2003.png" alt=
  "OfB - Open Choice 2003" style="margin-left: 15pt; margin-bottom: 15pt;"
  align="right" border="1" height="80" width="200" />"Choosing the best of
  the best in different sectors of GNU/Linux products and services is not an
  easy task. In many cases, there was more than one contender that was worthy
  of an award in any given category. However, we attempted to select the
  easiest to use, most robust, most promising, and - when possible - most
  free (as in freedom) products for the <a href=
  "http://www.ofb.biz/modules.php?name=News&amp;file=article&amp;sid=265">Open
  Choice Awards 2003</a>.</p>

  <p>"For years, GNU/Linux and other UNIX-like operating systems suffered
  from poor, buggy office suites. Fortunately,
  <strong>OpenOffice.org</strong> has fixed much of this as <a href=
  "http://www.sun.com">Sun Microsystems</a> and others work to make it (and
  its proprietary variant, <a href=
  "http://wwws.sun.com/software/star/staroffice/index.html">StarOffice</a>)
  the best office suite available. In the most recent releases,
  <strong>OpenOffice</strong> features improved Microsoft Office file format
  compatibility, the ability to export to useful internet formats such as
  Macromedia Flash for Impress presentations and Draw drawings, and
  dramatically faster startup. Perhaps most exciting is that the suite is now
  truly able to be a universal office suite in a heterogeneous office
  environment, with support for UNIX and UNIX-like systems such as GNU/Linux
  as well as Windows and Mac OS X."</p>

  <h2 style="clear: both;">Linux Journal—Reader's Choice Awards 2003,
  Favorite Office Program</h2>

  <p><img src="images_awards/ljreaders-2003.jpg" alt=
  "Linux Journal - Reader's Choice Awards 2003, Favorite Office Program"
  style="margin-right: 15pt; margin-bottom: 15pt;" align="left" border="1"
  height="154" width="150" /><a name="linuxjournal" id="linuxjournal"></a>
  <strong>Linux Journal</strong>, a publication of <strong>Specialized
  Systems Consultants, Inc. (SSC)</strong>, has announced the winners of the
  2003 Readers' Choice Awards. Over 7,500 readers visited the Linux Journal
  web site and voted on their top choices in 28 categories.</p>

  <p>"<strong>Linux Journal's</strong> annual Readers' Choice Awards allow
  members of the Linux community to pick their favorites in a number of
  categories, write-ins are accepted. Voting in the 2003 Readers' Choice
  Awards took place between June 30 and July 25, 2003, and was open to
  everyone. More information about the awards is also available in the
  November issue of Linux Journal, #115."</p>

  <h2 style="clear: both;">Linux Journal—Editors' Choice 2002, Best Office
  Application</h2>

  <p><img src="images_awards/linuxjournal.png" alt=
  "Linux Journal - Editors' Choice 2002, Best Office Application" style=
  "margin-right: 15pt; margin-bottom: 15pt;" align="left" border="1" height=
  "272" width="173" />"<strong>Linux Journal's Editors' Choice
  Awards</strong> are well-known as the premiere forum recognizing
  outstanding product developments and achievements in the Linux market.</p>

  <p>"A panel of more than 50 distinguished Linux experts was assembled to
  nominate products for the awards, which were then sent to the Linux Journal
  editors who chose the final winners.</p>

  <p>"Featured in the September 2002 issue of <a href=
  "http://www.linuxjournal.com" target="_blank">Linux Journal</a>, the
  winners of the <a href="http://linuxjournal.com/article.php?sid=6260"
  target="_blank">Best Office Application</a> award were <a href=
  "http://www.sun.com" target="_blank">Sun Microsystems</a> for
  <strong>OpenOffice.org 1.0</strong>."</p>

  <h2 style="clear: both;">XML Journal—XML-J 2002 Readers' Choice Finalist
  Award, Most Innovative Application of XML</h2>

  <p><strong>San Jose, CA, September 30, 2002</strong></p>

  <p><img src="images_awards/xml.png" alt=
  "XML Journal - XML-J Readers' Choice 2002, Finalist Award" style=
  "margin-left: 15pt; margin-bottom: 15pt;" align="right" border="1" height=
  "197" width="248" /> "<a href="http://www.sys-con.com" target=
  "_blank">SYS-CON Media</a> announced today the results of its three annual
  awards programs: the fifth annual <strong>Java Developer's Journal Readers'
  Choice Awards</strong>; the third annual <strong>XML-Journal Readers'
  Choice Awards</strong>; and the first annual <strong>Web Services Journal
  Editor's Choice Awards</strong>. The finalists and the winners will be
  announced at the Web Services Edge 2002 West–International Web Services,
  Java, and XML Conference &amp; Expo being held October 1-3 at the McEnery
  Convention Center in San Jose, California.</p>

  <p>"Widely referred to as the 'Oscars of the Software Industry', the
  <strong>JDJ Readers' Choice Awards</strong> program has become the most
  respected industry competition of its kind.</p>

  <p>"The full results of this year's JDJ voting will appear in the November
  2002 issue of <strong>Java Developer's Journal</strong>. The JDJ polls were
  open for just under a year, from November 6, 2001, through September 23,
  2002, and at least 30,000 <strong>Java Developer's Journal</strong> readers
  cast their votes. The total of award nominations also reached a new record
  high, with more than 180 companies nominating over 705 products in 29
  different award categories—seven more categories than last year. Many of
  the new ones reflect emerging trends in the Java space, such as 'Best
  Wireless Java Application' and 'Best XML Tool'."</p>

  <h2 style="clear: both;">Monitor magazine—Best Product Award, InterINFOS
  Fair, Slovenia</h2>

  <p><strong>Slovenia</strong></p>

  <p>"<strong>OpenOffice.org</strong> was awarded the <strong>Best
  Product</strong> award at the <strong>InterINFOS</strong> fair in
  Ljubljana, Slovenia, the nation's most important IT event. Each year,
  <a href="http://monitor.infomediji.si" target=
  "_blank"><strong>Monitor</strong></a>, the nation's leading IT magazine,
  selects among the exhibitors a product, which has been available on the
  market for no more than one year and which has created the most prominent
  and important appearance on the market. This year, the <strong>Best
  Product</strong> award was granted to <strong>OpenOffice.org</strong>.</p>

  <p>"Says Monitor: 'We believe that the award went to the right hands. The
  winner is <strong>OpenOffice.org</strong> with a Slovenian translation, a
  project with its roots in the computing community rather than in a
  particular company. This is a precedent that will show the extent to which
  open source code can reach, and what can be expected from it in the
  future.'"</p>

  <p>More here:</p>

  <p><a href=
  "http://www.infomediji.si/s.nsf/vse/7F2CFA9AB0A6610CC1256C5A0062C864">http://www.infomediji.si/s.nsf/vse/7F2CFA9AB0A6610CC1256C5A0062C864</a></p>

  <p>Overview of <strong>OpenOffice.org</strong>:</p>

  <p><a href=
  "http://www.infomediji.si/s.nsf/vse/3774EBF6A3AD6859C1256C21003CB02D">http://www.infomediji.si/s.nsf/vse/<br />

  3774EBF6A3AD6859C1256C21003CB02D</a></p><img src=
  "images_awards/linuxformat2001.jpg" alt=
  "Linux Format awards, Overall Winner Best Business Software" style=
  "margin-left: 15pt; margin-bottom: 15pt;" align="right" border="1" height=
  "330" width="237" />

  <h2 style="clear: both;">Linux Format awards—Overall Winner, Readers'
  Choice, Category Best Business Software for OpenOffice.org</h2>

  <p><strong>United Kingdom, April 23, 2002</strong></p>

  <p>On April 23 2002, <a href="http://www.linuxformat.co.uk" target=
  "_blank">Linux Format</a>, the UK's best-selling Linux magazine, officially
  announced that "<strong>OpenOffice.org</strong> was the overall winner in
  the category Best Business Software in the Linux Format Awards 2001, as
  voted for by readers of the magazine and registered visitors to the
  site."</p>
</body>
</html>
