<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<title>Asian FAQ</title>
</head>
<body> 
<h2>FAQs</h2>
<p><i>Last updated 2002-08-11<br>
  </i></p>
<table cellpadding=0 cellspacing=0 border=0>
  <tr>
    <td bgcolor="#cc6600"><img src="/branding/images/spacer.gif" height=1 width=5></td>
    <td><img src="/branding/images/spacer.gif" height=1 width=15></td>
    <td> <a href="faq-questions.html">Overview</a> &nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="faq-source.html">Source &amp; Technology</a> &nbsp;&nbsp; 
      <img src="/branding/images/separator.gif"> &nbsp;&nbsp; 
      <a href="faq-issuezilla.html">Issue Tracker</a> &nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="faq-licensing.html">Licensing</a> &nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="faq-community.html">Community</a> &nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="mirrors_faq.html">Mirrors</a>&nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="faq-asian.html">Asian FAQs</a> &nbsp;&nbsp; <img src="/branding/images/separator.gif"> 
      &nbsp;&nbsp; <a href="faq-other.html">Other</a></td>
  </tr>
</table>

<table border="1" width="100%" cellspacing="0" cellpadding="2" bordercolor="#99ccff" bgcolor="#FFFFFF">
  <td bgcolor="#f0f0f0">
    These faq have been compiled over the span of OpenOffice's lifetime.
    Most of the information is now out of date.
    See <a href="https://wiki.openoffice.org/wiki/Documentation/FAQ">the OpenOffice FAQ page</a> on our official wiki
    for up-to-date information.
    If you find instances that need updating, let us know by sending a note to <a href="mailto:dev@openoffice.apache.org">dev@openoffice.apache.org</a>.
  </td>
</table>

<a name="top"></a> 
<h3><img src="/branding/images/start_blue_bar.gif">&nbsp;&nbsp;Asian 
  FAQ: Questions&nbsp;&nbsp;<img src="/branding/images/end_blue_bar.gif">  
</h3>
<ol>
  <li><a href="#1">What is the licensing of OpenOffice.org and what does it mean?</a> 
  <li> <a href="#2">Where do I register to use OpenOffice.org software?</a> 
  <li><a href="#3">May I use OpenOffice.org at my business? </a> 
  <li> <a href="#4">Where can I buy OpenOffice.org software? </a> 
  <li><a href="#5">Is there support available for OpenOffice.org in Hong Kong 
    or China in general, Japan, Korea?</a></li>
  <li><a href="#6">Does OpenOffice.org software open Microsoft Word, Excel and 
    PowerPoint files?</a> 
  <li> <a href="#7">What are the system requirements for OpenOffice.org?</a> 
</ol>
 
<p> 
<hr>
<h3><img src="/branding/images/start_blue_bar.gif">&nbsp;&nbsp; 
  Asian FAQ: Answers&nbsp;&nbsp;<img src="/branding/images/end_blue_bar.gif"> 
</h3>
<ol>
  <li value="1"><b>What is the licensing of OpenOffice.org and what does it mean?</b><a name="1"></a>

    <p>OpenOffice.org is licensed under the <a href="//licenses/lgpl_license.html" target="_blank">LGPL</a>. 
      You may contribute to the project at OpenOffice.org by signing a <a href="/contributing/index.html"> 
      copyright form</a>. You may copy the software and distribute it freely.</p>
  </li>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="2"><b>Where do I register to use OpenOffice.org software?</b> <a name="2"></a> 
    <p>No registration is necessary. Just download and use! But we ask that if 
      you find problems, you report them either to the <a href="../mail_list.html" target="_blank">mailing 
      lists</a> on OpenOffice.org or as by filing a bug report in <a href="http://qa.openoffice.org/issue_handling/project_issues.html" target="_blank">Issue Tracker</a>.</p>
  </li>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="3"><b>May I use OpenOffice.org at my business?</b> <a name="3"></a> 
    <p>Yes, you may use OpenOffice.org binaries for commercial use. Before you 
      do this, please make sure you understand that the software is in development 
      and may not be feature complete. Alternatively, if you are interested in 
    StarOffice for commercial use please, see this URL: <a href="http://www.sun.com/staroffice/starofficenow" target="_blank">http://www.sun.com/staroffice/starofficenow</a> 
  </li>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="4"><b>Where can I buy OpenOffice.org software?</b> <a name="4"></a> 
    <p>OpenOffice.org software is available for download, free of charge. OpenOffice.org 
      software is not for sale by OpenOffice.org. To learn about downnloading 
      or buying CD-ROMs from community distributors, please go to our <a href="/download/index.html">Download page.</a>
  </li>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="5"><b>Is there support available for OpenOffice.org in Hong Kong 
    or China in general, Japan, Korea?</b> <a name="5"></a> 
    <p>Several companies including Sun Microsystem offer support and 
      services for OpenOffice.org. See <a href="/support">/support</a> for 
    details.</p>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="6"><b>Does OpenOffice.org software open Microsoft Word, Excel and 
    PowerPoint files?</b> <a name="6"></a> 
    <p>Yes. Go to File > Open and open your Microsoft file. Similarly, saving 
      in Microsoft formats will allow Microsoft users to open your OpenOffice.org 
      files.</p>
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr ALIGN=left SIZE="1" NOSHADE>
<ol>
  <li value="7"><strong>What are the system requirements for OpenOffice.org?</strong><a name="7"></a> 
    <p>See the <a href="//dev_docs/source/sys_reqs.html">System Requirements page</a>. </p>
  
</ol>
<p>
  <a href="#top">Back to top</a> 
<hr align=left size="1" NOSHADE>
</html>

