This explain how to generate the help for open source and convert it to PDF format 
Generate the help for open source with the open source install 

Note: until we have either a script to do it automatically or  do it 
completely in the ant script, follow the instructions:

1- Create a project 
	Create a folder:  "doc"
2- Copy all images 
	a- from "org.eclipse.mylyn.review.r4e.help.install/doc" to  <newproject>/doc
	b- from "org.eclipse.mylyn.review.r4e.help/doc to <newproject>/doc
	
3- Create a new file: R4EOpen.mediawiki
4- Copy "original mediawiki content" in order of the document we try to create; 
	a-Install help from open source
	b-Common help from open source 
	    ex:
		copy _r4eOpenInstall.mediawiki to R4EOpen.mediawiki
   		copy _r4eOpenUser.mediawiki (Remove the __TOC__ ) to R4EOpen.mediawiki
   		
5- Use the following ant build: build-r4e-helpPDF.xml (To execute: copy in the new project, right click, run as ant) 
==> This should generate a file in the doc folder: 	R4EOpen.fo

Note: until we can use the fop directly in the ant script, 
we need to run it manually
	
	If FOP is not available on your computer, you can download it and 
	extract to a folder (I used C:\fop\fop-1.0\)
	http://archive.apache.org/dist/xmlgraphics/fop/binaries/
	Select: fop-1.0-bin.tar.gz
	
Note 2: you can adjust the path on window environment and add to your path: ";C:\fop\fop-1.0\"

6- For now, we need to modify the R4EOpen.fo 
	-Edit R4EOpen.fo
	- Add the following at the beginning and save it:
	
	<?xml version="1.0"?>
	<!DOCTYPE xsl:stylesheet [
	<!ENTITY nbsp '&#160;'>
	]>

7- In the doc folder where you generated the "*.fo" file
	Window environment:
	fop.bat R4EOpen.fo ../R4EOpen.pdf
	
	LINUX environment:
	fop R4EOpen.fo ../R4EOpen.pdf
	
	
	==> The R4EOpen.pdf file is generated.
	
   

