<!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" xml:lang="de" lang="de">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="name" content="Apache OpenOffice" />
    <meta name="description" content="Die offizielle Homepage des Apache OpenOffice Open Source Projekts, Heimat von OpenOffice Writer, Calc, Impress, Draw und Base." />
    <meta name="keywords" content="OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Calc, Impress, Draw, Base, ODF, Open Document Format, freie Büro-Editoren" />
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
    <link rel="icon" href="/favicon.ico" type="image/x-icon" />
    <title>Apache OpenOffice - Offizielle Seite - Die freie und offene B&uuml;ro-Software</title>
    <script src="/download/globalvars.js"></script>
    <script src="/msg_prop_l10n.js"></script>
    <style>
    /* <![CDATA[ */
    /*-------------------- Exceptions on standard css -----------------------*/
    @import "/css/home.css";
    @import "/css/styles.css";
    @import "/css/exceptions.css";
    /* ]]> */
    </style>
    <script>
      function follow( platform ) {
        // _gaq.push( ['_trackEvent', 'social', 'followUs', platform] );

	if ( platform == 'ApacheBlog' ) {
          window.open( "https://blogs.apache.org/OOo/", "_blank" );
	} else if ( platform == 'Facebook' ) {
          window.open( "https://www.facebook.com/ApacheOO", "_blank" );
	} else if ( platform == 'Twitter' ) {
          window.open( "https://twitter.com/ApacheOO", "_blank" );
	} else if ( platform == 'YouTube' ) {
          window.open( "https://www.youtube.com/openoffice", "_blank" );
        }
      }

      function showAlertBox() {
	// The text is defined in "/msg_prop_l10n_xx.js".

	// Show the alert box or not?
	if( l10n.index_alert_box_show ) {
		// Depending if link is available, make the whole DIV clickable or not.
		if( l10n.index_alert_box_href ) {
			// Show the text with link and cursor as pointer.
			document.write( "<div id='alert_box' onclick='window.open( \"" + l10n.index_alert_box_href
			+ "\", \"_blank\" ); return false;'><ul><li>" );

			// Show headline.
			document.write( "<h2 style='cursor: pointer;'>"
			+ l10n.index_alert_box_headline_text + "</h2>" );

			// Show text.
			if( l10n.index_alert_box_text_text ) {
				document.write( "<p style='cursor: pointer;'>"
				+ l10n.index_alert_box_text_text + "</p>" );
			}
		} else {
			// Show the text without link and normal cursor.
			document.write( "<div id='alert_box'><ul><li>" );

			// Show headline.
			document.write( "<h2 style='cursor: default;'>"
			+ l10n.index_alert_box_headline_text + "</h2>" );

			// Show text.
			if( l10n.index_alert_box_text_text ) {
				document.write( "<p style='cursor: default;'>"
				+ l10n.index_alert_box_text_text + "</p>" );
			}
		}
		document.write( "</li></ul></div>" ); // Alert box.
	}
      }
    </script>
</head>

<body>

<!-- The text in the H1 tag is intentionally shown as not displayable, just to please accessibility tools like a
screen reader.
-->
<h1 style="display: none;">Apache OpenOffice</h1>

<div id="actionstatements">

  <script>
  <!--
  // Show alert box.
  // Show an important message or announcement.
  // In "/msg_prop_l10n.js": Change to 'true' to show the box that is defined in the variables.
  showAlertbox();
  //-->
  </script>

  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-info">
        <div class="action-text action-link">
          <a href="/why/index.html">
            <h2>Ich m&ouml;chte mehr &uuml;ber OpenOffice wissen (Englisch)</h2>
            <p>Was ist Apache OpenOffice? Was bringt mir Apache OpenOffice?</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
  </ul>

  <!-- Show the download link with currently available version number, loaded via JavaScript -->
  <script>
  <!--
  document.write( "<ul><li>"
    + "<div class='action-download'>"
      + "<div class='action-text action-link'>"
        + "<a href='./download/'>"
          + "<h2>Ich m&ouml;chte Apache OpenOffice herunterladen</h2>"
          + "<p style='font-size: 1.0em; font-weight: bold;'>(Neueste Version: " + DL.VERSION + ")</p>"
          + "<p>Laden Sie Apache OpenOffice kostenlos herunter <b>(wirklich, ohne Lizenzgeb&uuml;hren!)</b> | "
            + "<a href='https://blogs.apache.org/OOo/entry/with_apache_openoffice_you_get'"
              + "title='Blog post: With Apache OpenOffice you get what you do not pay for' target='_blank'>"
              + "Hier mehr Informationen (in Englisch)"
            + ".</a>"
          + "</p>"
        + "</a>"
      + "</div>"
    + "</div>"
  + "</li></ul>" );
  //-->
  </script>

  <!-- Show the download link, without version number -->
  <noscript>
    <div class="action-download">
      <div class="action-text action-link">
        <a href="./download/">
          <h2>Ich m&ouml;chte Apache OpenOffice herunterladen</h2>
          <p>Laden Sie Apache OpenOffice kostenlos herunter.</p>
        </a>
      </div>
    </div>
  </noscript>

  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-help">
        <div class="action-text action-link">
          <a href="./about-ooo/about-mailinglist.html">
            <h2>Ich ben&ouml;tige Hilfe zu OpenOffice</h2>
            <p>Wann immer Sie Unterst&uuml;tzung brauchen, hier gibt es Hilfe.</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-extend">
        <div class="action-text action-link">
          <a href="/extensions/index.html">
            <h2>Ich m&ouml;chte mehr mit OpenOffice machen</h2>
            <p>Erweitern Sie Apache OpenOffice mit zus&auml;tzlichen Funktionen, Vorlagen und Clipart.</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-participate">
        <div class="action-text action-link">
          <a href="https://openoffice.apache.org/get-involved-de.html">
            <h2>Ich m&ouml;chte mich bei OpenOffice beteiligen</h2>
            <p>Apache OpenOffice wird von Menschen rund um die Welt gemacht. Wir freuen uns &uuml;ber jede Beteiligung!</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-social">
        <div class="action-text action-link">
          <a href="/social/index.html" onclick="javascript:follow( 'SocialLink' );">
            <h2>Bleibe mit OpenOffice in Kontakt (Englisch)</h2>
            <p>Folge Apache OpenOffice via Announcement-Liste, offiziellem Blog oder sozialen Netzwerken.</p>
          </a>
          <div class="action-social-extra">
            <p>
              <span style="padding:0 5px; cursor: pointer;" onclick="javascript:follow( 'ApacheBlog' );"
                title="Folge unserem offiziellen Blog">
                <img src="/images/logo-rss-16.png" alt="Folge unserem offiziellen Blog" />
                <a>Offizieller Blog</a>
              </span>
              <span style="padding:0 5px; cursor: pointer;" onclick="javascript:follow( 'Facebook' );"
                title="Folge uns auf Facebook">
                <img src="/images/logo-facebook-16.png" alt="Facebook" />
                <a>Facebook</a>
              </span>
              <span style="padding:0 5px; cursor: pointer;" onclick="javascript:follow( 'Twitter' );"
                title="Folge uns auf Twitter">
                <img src="/images/logo-twitter-16.png" alt="Twitter" />
                <a>Twitter</a>
              </span>
              <span style="padding: 0 5px; cursor: pointer;" onclick="javascript:follow( 'YouTube' );"
                title="Abonniere unseren YouTube-Kanal">
                <img src="/images/logo-youtube-16.png" alt="YouTube" />
                <a>YouTube</a>
              </span>
            </p>
          </div>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
  </ul>

  <div id="SupportedAndSupporters">
    <a href="https://validator.w3.org/check?uri=referer"
    title="W3C Markup Validation Service - Check the markup (HTML, XHTML, ...) of Web documents">
    <img src="https://www.w3.org/Icons/valid-xhtml10-blue.png"
    alt="Valid XHTML 1.0!" height="31" width="88" /></a>
  </div>
</div>

<div id="news">

  <div class="first campaign" style="height: 210px; float: right; overflow: auto;">
    <h2>Letzte Blogposts (Englisch)</h2>

    <p style="text-align:right">
      <a href="https://blogs.apache.org/OOo/" target="_blank">Alle Blogposts (Englisch)</a>
    </p>

    <p>
      <em>4. Mai 2022:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-18">
      Announcing Apache OpenOffice 4.1.12</a>
      <br />

      <em>6. Oktober 2021:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-17">
      Announcing Apache OpenOffice 4.1.11</a>
      <br />

      <em>4. Mai 2021:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-16">
      Announcing Apache OpenOffice 4.1.10</a>
      <br />

      <em>7. Februar 2021:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-15">
      Announcing Apache OpenOffice 4.1.9</a>
      <br />

      <em>6. Januar 2021:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/new-release-for-apple-s">
      New release for Apple's macOS 11 (Big Sur) - Also with fixes for Linux and Windows</a>
      <br />

      <em>10. November 2020:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-14">
      Announcing Apache OpenOffice 4.1.8</a>
      <br />

      <em>29 October 2020:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/300-million-downloads-of-apache">
      300 Million Downloads of Apache OpenOffice</a>
      <br />

      <em>17 May 2020:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/apache-openoffice-needs-your-help">
      Apache OpenOffice needs your help</a>
      <br />

      <em>15. Oktober 2020:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/the-apache-software-foundation-celebrates">
      The Apache Software Foundation Celebrates 20 Years of OpenOffice®</a>
      <br />

      <em>22. Oktober 2019:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/1-6-million-downloads-of">
      1.6 million downloads of Apache OpenOffice 4.1.7</a>
      <br />

      <em>21. September 2019:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-13">
      Announcing Apache OpenOffice 4.1.7</a>
      <br />

      <em>18. November 2018:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-12">
      Announcing Apache OpenOffice 4.1.6</a>
      <br />

      <em>31 January 2018:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/over-3-2-million-downloads">
      Over 3.2 million downloads of Apache OpenOffice 4.1.5</a>
      <br />

      <em>30. Dezember 2017:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-11">
      Announcing Apache OpenOffice 4.1.5</a>
      <br />

      <em>19. Oktober 2017:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-1">
      Announcing Apache OpenOffice 4.1.4</a>
      <br />

      <em>28. November 2016:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/over_200_million_downloads_of">
      Over 200 million downloads of Apache OpenOffice</a>
      <br />

      <em>12. Oktober 2016:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_12">
      Apache OpenOffice 4.1.3 released</a>
      <br />

      <em>28. Oktober 2015:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_11">
      Apache OpenOffice 4.1.2 released</a>
      <br />

      <em>27. September 2015:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/coming_soon_apache_openoffice_4">
      Coming soon... Apache OpenOffice 4.1.2</a>
      <br />

      <em>13 May 2015:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/authoring_e_books_in_apache">
      Authoring e-Books in Apache OpenOffice</a>
      <br />

      <em>13. April 2015:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/collaboration_is_in_our_dna">
      Collaboration is in our DNA</a>
      <br />
    </p>
  </div>

  <div id="all_news" style="height: 375px; float: left; overflow: auto;">
    <div class="campaign">
      <h2>Letzte Neuigkeiten</h2>

      <p style="text-align:right">
        <a href="/news/index.html">Archivierte Neuigkeiten (Englisch)</a>
      </p>
      <p></p>

      <h2>Apache OpenOffice 4.1.12 veröffentlicht</h2>

      <p>
        <em>4. Mai 2022:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.12 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-18">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.12+Release+Notes">
        Release Notes</a> (Englisch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.11 veröffentlicht</h2>

      <p>
        <em>6. Oktober 2021:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.11 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-17">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=191333357">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.10 veröffentlicht</h2>

      <p>
        <em>4. Mai 2021:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.10 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-16">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=181305380">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.9 veröffentlicht</h2>

      <p>
        <em>7. Februar 2021:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.9 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-15">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=173081636">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.8 veröffentlicht</h2>

      <p>
        <em>10. November 2020:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.8 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-14">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=165224926">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.7 veröffentlicht</h2>

      <p>
        <em>21. September 2019:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.7 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-13">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.7+Release+Notes">
        Release Notes</a> (Englisch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.6 veröffentlicht</h2>

      <p>
        <em>18. November 2018:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.6 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-12">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=97550579">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.5 veröffentlicht</h2>

      <p>
        <em>30. Dezember 2017:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.5 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-11">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74691663">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.4 veröffentlicht</h2>

      <p>
        <em>19. Oktober 2017:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.4 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing-apache-openoffice-4-1">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=73632410">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.3 veröffentlicht</h2>

      <p>
        <em>12. Oktober 2016:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.3 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_12">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65873798">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.2 veröffentlicht</h2>

      <p>
        <em>28. Oktober 2015:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.2 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_11">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61318804">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.1 veröffentlicht</h2>

      <p>
        <em>21. August 2014:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.1 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=44995874">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.0 veröffentlicht</h2>

      <p>
        <em>29. April 2014:</em>
        Das Apache OpenOffice Projekt gibt bekannt, dass AOO 4.1.0 ab sofort zum
        <a href="https://www.openoffice.org/de/download/">Herunterladen</a> zur Verfügung steht. Weitere Informationen
        sind im <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce">Blog</a>
        (Englisch) und in den <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=40507525">
        Release Notes</a> (Deutsch) nachlesbar.
      </p>
    </div>
  </div>
</div>

<!-- Every new element and text that is defined below the previous DIV will be actually displayed wrapped below this DIV
(because of "clear: both" instead of floated around the previous DIVs. This is really needed. -->
<div style="clear: both;">
</div>

</body>
</html>
