2

アイデアとは?

  1. グラフィックスを画像に保存します。
  2. バイナリをサーバー上の文字列に渡します。
  3. バイナリからグラフを識別します (準備完了)。
  4. データとグラフィックを含む PDF を作成します (準備完了、itex を使用)。
  5. PDFを表示(準備完了)。

しかし、グラフィックをエクスポートできません。これは、それらを検出できないためです。データテーブルにグラフィックを含めると、widgetvar が繰り返されるため、showcaseのソリューションを使用できません。

$('#output').empty().append(chartWidgetvar.exportAsImage());

これは私のコードの一部です。

<h:form id="reportePro">
<p:dataTable value="#{listas.reporteSeccionPro}" var="p"
      selection="#{listas.reporteSeleccionadoSeccionPro}"
      selectionMode="single" rowKey="#{p.idFila}"
      emptyMessage="No existen coincidencias" id="reporteGeneral">
      <p:column headerText="Chart">
         <p:commandButton id="chartBtn" value="Gráficos" type="button" />
         <p:overlayPanel id="chartPanel" for="chartBtn" hideEffect="fade"
            showEffect="fade" appendToBody="true"
            style="width:900px;height:450px;">
            <p:pieChart id="pie" 
               styleClass="jqplot-table-legend jqplot-target"
               value="#{p.pieModel}" extender="ext"
               title="#{p.nomProSeccionPro}"
               style="width:400px;height:450px;font-size:15px;"
               showDataLabels="true" sliceMargin="5"
               seriesColors="DB4C14, C0E9ED, A8CCED, C7B47F, F7F28F, 4DB0C4" />
         </p:overlayPanel>
      </p:column>
   </p:dataTable>
</h:form>

dynamic id を使用すると思いましたが、

<p:pieChart id="#{chart.idPie}"  />

設定できません。

動的widgetvarを使用すると思いましたが、

<p:pieChart widgetvar="#{chart.idPie}"  />

設定できません。

グラフィックのidだけを使おうと思ったのですが、

#{p:widgetVar ('ComponentId')}

ただし、動的IDは使用できないことに注意してください

もう 1 つの解決策は、canvas.toDataURL を使用することです。そのためには、最初のキャンバスの ID が必要ですが、primefaces ID は生成しません。したがって、このソリューションは使用できません。

何時間もかけて解決策が見つからなかった後、私に尋ねます。チャートがデータテーブルにある場合、チャートを画像にエクスポートできますか?

4

0 に答える 0