<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document>

	<properties>
		<title>OpenOffice converter for OpenMeetings</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="OpenOffice Service for OpenMeetings">

			<p>
				To import .doc, .docx, .odp, .xls, .xlsx, .ppt, .pptx, ... [ all
				files that you can open with OpenOffice ]
				to OpenMeetings and use
				them in the whiteboard you need OpenOffice or LibreOffice
				installed
				the machine that runs OpenMeetings.
			</p>
			<p>
				<i>Since Version 2.0 of OpenMeetings starting of
					OpenOffice/LibreOffice as service in not required, JODConverter
					will automatically start and shut down the service!
				</i>
			</p>
			<p>
				Installation of JODConverter means: You donwload the ZIP binary from
				their
				<a href="http://code.google.com/p/jodconverter/" target="_BLANK"
					rel="nofollow">website</a>
				and then configure in Apache OpenMeetings Administration >
				Configuration (or during installation) the config key
				<tt>jod.path</tt>
				to point to the "lib" directory of the unpacked JODConverter binary.
				There is no restart of OpenMeetings required.
			</p>
			<p>You should use an OpenOffice version greater 3</p>

		</section>


	</body>

</document>