2

什么是想法?

  1. 将图形保存在图像中。
  2. 将二进制文件传递给服务器上的字符串。
  3. 从二进制(准备好)中识别图形。
  4. 创建包含数据和图形的 pdf(准备好,使用 itex)。
  5. 查看pdf(准备好)。

但我无法导出任何图形。这是因为我无法检测到它们。当我在数据表中包含图形时, widgetvar 会重复,所以我不能使用陈列柜的解决方案。

$('#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>

我以为使用动态 id ,

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

但不能设置。

我以为使用动态widgetvar,

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

但不能设置。

我想只使用图形的id,

#{p:widgetVar ('ComponentId')}

但请记住,您不能使用动态 ID

另一种解决方案可能是使用 canvas.toDataURL,为此,我需要第一个画布的 id,但不会生成 primefaces ID。所以我不能使用这个解决方案。

花了几个小时并没有找到解决方案后,我问我。当图表在数据表中时,可以将图表导出到图像吗?

4

0 回答 0