我在我的项目中使用PptxGenJS.js
,其中包含跨各种仪表板(页面/视图)的图表,
我有一个特定的要求,一旦用户将图形(SVG image
)作为幻灯片添加到PptxGenJS对象,它应该在整个应用程序中维护,直到用户点击导出ppt。
请仔细阅读以下说明,以便更好地理解。
我初始化PptxGenJS
中的layout.cshtml
对象,这对所有视图都是通用的。
var thispptx = new PptxGenJS();
现在在每个视图中,有多个图表,当用户点击Add To PPT
按钮时,如下所示,
幻灯片已添加到PPT
SVG
文件被添加到先前创建的PptxGenJS
对象中。
即
$('#Chart1PPTId').click(function ()
{
var pptslide1 = CreateSlide("#barChartz1", "bar",thispptx,CustomlabeltextForPPT);
});
function CreateSlide(divId, ChartType,pptx,SearchCriteria) {
var slide = pptx.addNewSlide()
var svg;
if (ChartType != "guage") {
svg = EntryPoint.getChartsvg(divId);
}
else {
svg = EntryPoint.getGuageChartsvg(divId);
}
var DOMURL = window.URL || window.webkitURL || window;
var svgBlob = new Blob([svg], { type: 'image/svg+xml;charset=utf-8' });
var url = DOMURL.createObjectURL(svgBlob);
slide.addImage({ path: url, x: 0.5, y: 0.5, w: 9.0, h: 4.5});
slide.addText('Search Criteria : ' + SearchCriteria, { x: 0.1, y: 5.2, font_size: 12, color: '363636' });
return slide
}
现在,在向PptxGenJS
对象添加多张幻灯片后,用户将点击Export to PPT
按钮,将其导出为PowerPoint
演示文稿。
所以我的问题是所有这些在当前页面/视图中都能正常工作。
但是我的要求是在所有视图中保持相同的PptxGenJS对象,这是目前无法实现的,因为我在布局中初始化了PptxGenJS对象,该对象为每个页面/视图加载(因此为每个视图创建了一个新的PptxGenJS对象)视图/页)
有没有更好的方法来处理我的这种情况?