3

まず最初に、私は英語のネイティブ スピーカーではないことをお伝えしなければならないので、問題を正しく説明できることを願っています。

棒グラフを PDF にエクスポートする際に問題が発生します。私は PrimeFaces 3.5 と Tomcat v7 を使用しています。

調査の結果、グラフを PDF で直接エクスポートすることはできないことがわかりました。しかし、チャートをpngやjpegなどの画像に保存する方法があるようです。

私はこれを見つけました:http ://www.primefaces.org/showcase-labs/ui/chartExport.jsfしかし、それは印刷画面の方法にすぎず、pdfレポートで使用するために保存したいと思います。

JFreeChart ソリューションも表示されますが、html ページと PDF レポートで同じチャートを維持したいと考えています。

これが私のコードです:

<h:form id="finalreport">
            <c:if test="#{treeBean.finalPrintReport.create == 1}">
                <h1>
                    <h:outputText value="#{treeBean.finalPrintReport.namefinalreport}"
                        escape="false" />
                </h1>
                <p:dataTable id="dataTableReport" var="row"
                    value="#{treeBean.finalPrintReport.allData}" paginator="true"
                    rows="10">
                    <p:columns value="#{treeBean.finalPrintReport.column}" var="column"
                        columnIndexVar="colIndex">
                        <f:facet name="header">
                            <h:outputText value="#{column}" />
                        </f:facet>

            <h:outputText value="#{row[colIndex]}" />
                    </p:columns>
                </p:dataTable>
                <br />

                <h:commandLink>
                    <p:graphicImage value="/images/pdf.png" />
                    <p:dataExporter type="pdf" target="dataTableReport"
                        fileName="Report" preProcessor="#{treeBean.createPDF}" />
                </h:commandLink>
            </c:if>
        </h:form>
        <!-- Graph -->
        <h:form id="graph">
            <c:if test="#{treeBean.finalPrintReport.create == 1}">
                <c:if test="#{treeBean.finalPrintReport.propertyOfFinalReport.graph == true}">
                    <p:barChart id="basic" value="#{treeBean.chartbar2d}"
                        legendPosition="ne" title="Basic Bar Chart" 
                        style="height:300px" />
                </c:if> 
            </c:if>
        </h:form>

ありがとう

4

2 に答える 2