<?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 xmlns="http://maven.apache.org/XDOC/2.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
		<title>OpenOffice converter for OpenMeetings</title>
		<author email="dev@openmeetings.apache.org">Apache 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>
			<div class="alert alert-success">
				<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>
			</div>
			<div class="alert alert-success">
				<i>JODConverter is bundled into OpenMeetings since 3.1.4</i>
			</div>
			<p>You should use an OpenOffice version greater 3</p>
			<div>
				<tt>officeHome</tt> configuration need to remain blank<br/>
				In case document conversion will NOT work you need to
				<ol>
					<li>locate <tt>soffice.bin</tt> on your system</li>
					<li>
						set <tt>officeHome</tt> to <tt>/usr/lib/libreoffice</tt>
						(in case soffice.bin is located in <tt>/usr/lib/libreoffice/program</tt>)
					</li>
				</ol>
			</div>
		</section>
	</body>
</document>
