我正在尝试使用飞碟将JSF页面转换为PDF。
在rapport.xhtml中,我有一些后备bean参数,这些值应该出现在pdf中。但是他们没有。如果我访问xhtml页面,那么值显示正确,我可以看到pdf页面包含我编写的纯文本,但没有支持bean的值。
这是我在后备bean中用于转换的功能:
public void createpdf() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext excontext = facesContext.getExternalContext();
HttpSession session = (HttpSession) excontext.getSession(true);
String url = "http://localhost:8080/digitalisation_lstp/chef/rapport.xhtml;jsessionid="+session.getId()+"?pdf=true";
try {
ITextRenderer renderer = new ITextRenderer();
//InputStream is = new URL(url).openStream();
renderer.setDocument(new URL(url).toString());
renderer.layout();
HttpServletResponse response = (HttpServletResponse) excontext.getResponse();
response.reset();
response.setContentType("application/pdf");
response.setHeader("content-Disposition", "inline: filename\"print-file.dpf\"");
OutputStream outputstream = response.getOutputStream();
renderer.createPDF(outputstream);
outputstream.close();
} catch (Exception e) {
}
facesContext.responseComplete();
}
这是rapport.xhtml:
(我想在pdf中显示的值)
<table style="" border="1">
<tr >
<td class="td1"> Dossier N </td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().num_dossier}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Client</td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().client}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Chantier</td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().chantier}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Prestation</td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().prestation}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Type de béton</td>
<td class="td2"> <h:outputText value="#{rapportCtlr.afficher_rapport().type_beton}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Lieu de pélèvement</td>
<td class="td2"> <h:outputText value="#{rapportCtlr.afficher_rapport().lieu_preleve}"></h:outputText></td>
</tr>
<tr>
<td class="td1">Rèf de rapport</td>
<td class="td2"> <h:outputText value="#{rapportCtlr.afficher_rapport().ref_rapport}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Date d'émission</td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().date_emission}"></h:outputText></td>
</tr>
<tr>
<td class="td1"> Date de prèlèvement</td>
<td class="td2"> <h:outputText value="#
{rapportCtlr.afficher_rapport().date_preleve}"></h:outputText></td>
</tr>
</table>
,但的值未在pdf中显示。仅显示的值。