ItextRender不显示pdf中的xhtml内容

时间:2019-05-16 19:57:35

标签: java pdf jsf flying-saucer

我正在尝试使用飞碟将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中显示。仅显示的值。

0 个答案:

没有答案