<!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="da" lang="da">
<head>
    <meta name="description" content="Den officielle hjemmeside for Apache OpenOffice open source projekt, hjemstedet for OpenOffice Writer, Calc, Impress, Draw og Base." />
    <meta name="keywords" content="OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Calc, Impress, Draw, Base, ODF, Open Document Format, gratis office redigerings værktøj" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Apache OpenOffice – Officielle hjemmeside – Den gratis og åbne produktivitets pakke</title>
    <script type="text/javascript" src="/download/globalvars.js"></script>
    <style type="text/css">
    /* <![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( show ) {
	// More see "http://html-color-codes.info/"
        var l10n_alert_box_background_color = "#F5A9A9";
        // Make the whole alert box clickable with a link.
        var l10n_alert_box_href		    = "https://openoffice.apache.org/translate.html";
	// Maximum 49 characters.
        var l10n_alert_box_headline_text    = "We need your help to complete translation into Danish!";
	// Maximum 630 characters.
        var l10n_alert_box_text_text	    = "This note is in English because we have no one to translate this webpage "
					      + "and others into your language. The links on the page will help you "
					      + "download and install Apache OpenOffice with Danish translation. But we "
					      + "still need help with this website. <br /><br /> If you are interested "
					      + "in helping translate, please click this text to review the information. "
					      + "You can send a note to our mailing list \"L10N@openoffice.apache.org\" "
					      + "if you want to volunteer or if you have questions."

        // Show alert box or not?
        if( show ) {
          // If no background color value was set then use the default value.
          if( ! l10n_alert_box_background_color )
            var l10n_alert_box_background_color = "#FFD9A7";

          // Show alert box with defined background color.
          // Depending if link is available, make the whole DIV clickable or not.
          if( l10n_alert_box_href ) {
            // Show the text with link and cursor as pointer.
            document.write( "<div id='alert_box' style='background: " + l10n_alert_box_background_color
            + "; ' onclick='window.open(\"" + l10n_alert_box_href + "\", \"_blank\"); return false;'>" );

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

            // Show text.
            if( l10n_alert_box_text_text )
              document.write( "<p style='cursor: pointer;'>" + l10n_alert_box_text_text + "</p>" );

          } else {
            // Show the text without link and normal cursor.
            document.write( "<div id='alert_box' style='background: " + l10n_alert_box_background_color + "'>" );

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

            // Shoe text.
            if( l10n_alert_box_text_text )
              document.write( "<p style='cursor: default;'>" + l10n_alert_box_text_text + "</p>" );
          }

          document.write( "</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 type="text/javascript">
  <!--
  // Show alert box.
  // Change to 'true' if you want to show the text that is defined in the variables above.
  showAlertbox( false );
  //-->
  </script>

  <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-info">
        <div class="action-text action-link">
          <a href="./why/index.html">
            <h2>Lær mere om OpenOffice</h2>
            <p>Hvad er Apache OpenOffice? Og hvorfor skulle jeg bruge det?</p>
          </a>
        </div>
      </div>
    </li>
    <li>
      <hr />
    </li>
  </ul>

    <!-- Show the download link with currently available version number, loaded via JavaScript -->
    <script type="text/javascript">
    <!--
    document.write( "<ul><li>"
      + "<div class='action-download'>"
        + "<div class='action-text action-link'>"
          + "<a href='./download/index.html'>"
            + "<h2>Hent Apache OpenOffice</h2>"
            + "<p style='font-size: 1.0em; font-weight: bold;'>(Nyeste udgave: " + DL.VERSION + ")</p>"
            + "<p>Hent Apache OpenOffice gratis <b>(Seriøst!)</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'>"
                + "Klik her for mere information"
              + "</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/index.html">
              <h2>Hent Apache OpenOffice</h2>
              <p>Hent Apache OpenOffice gratis, eller find ud af hvordan du får det.</p>
            </a>
          </div>
        </div>
    </noscript>

    <ul>
    <li>
      <hr />
    </li>
    <li>
      <div class="action-help">
        <div class="action-text action-link">
          <a href="/support/index.html">
            <h2>Jeg har brug for hjælp til OpenOffice</h2>
            <p>Hjælpen er lige ved hånden, når du har brug for det.</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>Få mere ud af OpenOffice</h2>
            <p>Udvid Apache OpenOffice med flere funktioner, skabeloner og multimedieklip.</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.html">
            <h2>Jeg vil gerne hjælpe med at udvikle OpenOffice</h2>
            <p>Apache OpenOffice er udviklet med hjælp fra folk over hele verden. Du er velkommen til at bidrage!</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>Jeg vil gerne holdes opdateret af OpenOffice</h2>
            <p>Følg udviklingen af OpenOffice via vores sociale medier og vores blog.</p>
          </a>
          <div class="action-social-extra">
            <p>
              <span style="padding:0 5px; cursor: pointer;" onclick="javascript:follow( 'ApacheBlog' );"
                title="Følg vores officielle blog">
                <img src="/images/logo-rss-16.png" alt="Blog" />
                <a>Officielle Blog</a>
              </span>
              <span style="padding:0 5px; cursor: pointer;" onclick="javascript:follow( 'Facebook' );"
                title="Følg os på 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="Følg os på 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="Abonnér på vores 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>Nyeste blog indlæg</h2>

    <p style="text-align:right">
      <a href="https://blogs.apache.org/OOo/">Alle indlæg</a>
    </p>

    <p>
      <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 October 2016:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_12">
      Announcing Apache OpenOffice 4.1.3</a>
      <br />

      <em>28 October 2015:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_11">
      Announcing Apache OpenOffice 4.1.2</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 />

      <em>31 December 2014:</em>
      <br />
      <a href="https://blogs.apache.org/OOo/entry/apache_openoffice_in_2014_a">
      Apache OpenOffice in 2014: a year in review</a>
      <br />
    </p>
  </div>

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

      <p style="text-align:right">
        <a href="/news/index.html">Alle nyheder</a>
      </p>
      <p></p>

      <h2>Apache OpenOffice 4.1.3 released</h2>

      <p>
        <em>12 October 2016:</em>
        The Apache OpenOffice project announces the
        <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_12"
        title="Official blog post about Apache OpenOffice 4.1.3">official release of version 4.1.3</a>.
        In the <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.3+Release+Notes"
        title="Release Notes for Apache OpenOffice 4.1.3">Release Notes</a> you can read about all new bugfixes,
        improvements and languages. <a href="https://www.openoffice.org/download/"
        title="Download Apache OpenOffice 4.1.3">Don't miss to download</a> the new release and find out yourself.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.2 released</h2>

      <p>
        <em>28 October 2015:</em>
        The Apache OpenOffice project announces the
        <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_11"
        title="Official blog post about Apache OpenOffice 4.1.2">official release of version 4.1.2</a>.
        In the <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.2+Release+Notes"
        title="Release Notes for Apache OpenOffice 4.1.2">Release Notes</a> you can read about all bugfixes,
        improvements and languages. <a href="https://www.openoffice.org/download/"
        title="Download Apache OpenOffice 4.1.2">Don't miss to download</a> the new release and find out yourself.
      </p>
    </div>

    <div class="campaign">
      <h2>Udine moves to OpenOffice, will save 360,000 Euro</h2>

      <p>
        <em>16 September 2014:</em>
        The City of Udine, in Italy, announced a process that will lead to the installation
        of OpenOffice on 900 municipal desktops, saving the city 360,000 Euro.
        ZDNet's Raffaele Mastrolonardo has the
        <a href="http://www.zdnet.com/another-italian-city-announces-its-ditching-microsoft-windows-for-open-source-7000033682/">details</a>.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.1 released</h2>

      <p>
        <em>21 August 2014:</em>
        The Apache OpenOffice project announces the
        <a href="https://blogs.apache.org/OOo/entry/announcing_apache_openoffice_4_1"
        title="Official blog post about Apache OpenOffice 4.1.1">official release of version 4.1.1</a>.
        In the <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1.1+Release+Notes"
        title="Release Notes for Apache OpenOffice 4.1.1">Release Notes</a> you can read about all new features,
        functions and languages. <a href="https://www.openoffice.org/download/"
        title="Download Apache OpenOffice 4.1.1">Don't miss to download</a> the new release and find out yourself.
      </p>
    </div>

    <div class="campaign">
      <h2>Apache OpenOffice 4.1.0 released</h2>

      <p><em>29 April 2014:</em>
      The Apache OpenOffice project announces the
      <a href="https://blogs.apache.org/OOo/entry/the_apache_openoffice_project_announce"
      title="Official blog post about Apache OpenOffice 4.1.0">official release of version 4.1.0</a>.
      In the <a href="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+4.1+Release+Notes"
     title="Release Notes for Apache OpenOffice 4.1.0">Release Notes</a> you can read about all new features, functions
      and languages. <a href="https://www.openoffice.org/download/"
      title="Download Apache OpenOffice 4.1.0">Don't miss to download</a> the new release and find out yourself.</p>
    </div>

    <div class="campaign">
      <h2>100 Million downloads</h2>

      <p><em>17 April 2014:</em>
      The Apache OpenOffice project is proud to tell you that our software was
      <a href="https://blogs.apache.org/foundation/entry/the_apache_software_foundation_announces56"
      title="Apache OpenOffice was downloaded 100 million times">downloaded over 100 million times</a>. Join us in
      celebrating this big achievement!</p>
    </div>

    <div class="campaign">
      <h2>Volunteers, not Amateurs</h2>

      <p><em>8 January 2013:</em>
      Apache OpenOffice is developed 100% by volunteers.  Apache does not pay for developers, for translators, for QA, for
      marketing, for UI, for support, etc. Of course, we're happy to accept
      <a href="https://www.apache.org/foundation/contributing.html">donations to the Apache Software Foundation</a>, to keep
      our servers runnings and for similar overhead expenses. But our products are developed entirely by volunteers.

      <p>Some users are initially worried by this statement:<br /><strong>How can software for free, developed by volunteers,
      be any good?<br /></strong><a href="/why/why_volunteers.html">Read on for an answer...</a></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>
