问题描述
我正在使用react-pdf将一些react组件转换为pdf。 我将一些表格和一些图像转换为pdf。
我的组件中也有react-apexcharts,我想将此React-apexcharts组件添加到pdf中。
我的Graph组件如下所示:
render() {
return (
<View id="chart">
<Text> This is graph component </Text>
<Chart options={this.options} series={this.series()}
type="area" height="350"
/>
</View>
)
}
series只是这样的数组对象:
series() {
return [
{
name: Props1,data: generateDayWiseTimeSeries(this.props.props1)
},{
name: Props2,data: generateDayWiseTimeSeries(this.props.props2)
}
]
}
在“我的图形”组件中,我将div和其他html标签转换为react-pdf标签,例如Page,View,Text。 但是我收到此错误:'上面的错误发生在组件中: '。我认为这是因为具有内置div和其他html标签的“图表”组件。
是否有任何方法可以将此组件标签转换为react-pdf组件,以便可以显示图形。或在页面加载时拍摄图形组件的快照,并在要在pdf中呈现它的位置调用它。
或者还有其他有效的方法吗?我希望你理解我的问题:)
解决方法
即使是我也不得不做这样的事情。您可以首先通过为每个图表提供唯一的图表 id(使用选项 -> 图表 -> id 字段)来生成顶点图表,然后您可以使用下面的图表 id 来获取图表 URL,使用您提供的图表 id 来生成图表。这个图表网址可以在react pdf中Image标签的src属性中提供。
请注意,getDataUri 方法将返回 promise 对象,而您 必须先解决它,然后才能在 Image 标签中使用它。
const getDataUri = async (chartId) => {
return await ApexCharts.exec(chartId,"dataURI").then(({ imgURI }) => {
return imgURI;
});
}
<Image src={chartURL} />