Ajuda, gerar PDF/Excel através do RichFaces c/ JSF. DisplayTag?

Boa Tarde,

Eu tenho uma XHTML/JSF e nela uso um dataTable do RichFaces. TEm como gerar um PDF e um excel dos dados da tabela, tipo com o DisplayTag ?

TEntei mas não aparece nada !!

Qq ajuda é bem vinda !!

Obrigado

Você pode usar o JBoss Seam para isso.

Segue um link de exemplo

http://www.marcossousa.com/2008/07/01/gere-pdf-de-qualidade-em-10-minutos/

O problema é que o projeto já esta´todo feito em cima do TomCat, usando JSF e RichFaces.
Pensei em usar o display tag mas não estou conseguindo !!

Segue o código como está:

		<!-- Search Results Table -->
		<c:if test="${monthReportBean.showResults}">
				<div style="table_data">
				<rich:dataTable first="0" binding="#{monthReportBean.tableResults}" width="100%" rows="13" rowClasses="odd-row,even-row" columnClasses="col" id="monthReportList"  value="#{monthReportBean.results_table_list}" var="row" styleClass="table" >
				<rich:column footerClass="footerTotalCenter" align="center" width="15%">
					<f:facet name="header">
						<h:outputText value="#{msg.month}"/>
					</f:facet>
					<h:outputText value="#{row.month}" id="fieldMonthText" />
					<f:facet name="footer">
						<h:outputText value="#{msg.total}" />
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.control_production}" escape="false"/>
					</f:facet>
					<h:outputText value="#{row.controlProduction}" id="field1Text"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.controlProduction}" id="field1bText"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.dicarded_production}" escape="false" />
					</f:facet>
					<h:outputText value="#{row.discardedProduction}" id="field2Text"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.discardedProduction}" id="field2bText"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.total}" />
					</f:facet>
					<h:outputText value="#{row.finalProduction}" id="field3Text"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.finalProduction}" id="field3bText"><f:convertNumber locale="pt_BR" pattern="###,###,##0"/></h:outputText>
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" rendered="#{monthReportBean.showValueCalculed}" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.due_compensation}" escape="false"/>
					</f:facet>
					<h:outputText value="#{row.valueCalculed}" id="field4Text"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.valueCalculed}" id="field4bText"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" rendered="#{monthReportBean.showValuePayed}" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.compensation_paid_on_time}" escape="false" />
					</f:facet>
					<h:outputText value="#{row.valuePayed}" id="field5Text"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.valuePayed}" id="field5bText"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					</f:facet>						
				</rich:column>
				<rich:column footerClass="footerTotalRight" align="right" rendered="#{monthReportBean.showValueDelayed}" width="14%">
					<f:facet name="header">
						<h:outputText value="#{msg.compensation_paid_late}" escape="false" />
					</f:facet>
					<h:outputText value="#{row.valueDelayed}" id="field6Text"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					<f:facet name="footer">
						<h:outputText value="#{monthReportBean.form.search_obj.valueDelayed}" id="field6bText"><f:convertNumber locale="pt_BR" pattern="#,###,##0.00"/></h:outputText>
					</f:facet>						
				</rich:column>
			</rich:dataTable>
			</div>
		</c:if>