douqianzha6213 2019-03-07 11:18
浏览 267

jspdf中的SVG图表在PDF中重叠

I want to include SVG charts in jspdf, It is showing but overlapping each other. One is line chart and other two are pie charts.

<canvas id="yearSubmissionsChart" data-dates='<?php echo json_encode($dates,JSON_PRETTY_PRINT);?>' data-value='<?php echo json_encode($dateval,JSON_PRETTY_PRINT);?>'></canvas> // Line chart

<div id="p1" class="cgpie"></div> // Pie chart1

<div id="p2" class="cgpie"></div> // Pie chart2

<button type="button" class="btn btn-warning" id="newbtndownload">Download to PDF</button> // Download PDF button



 [![$("#newbtndownload").click(function(){ // JS code for download PDF
    var pdf = new jsPDF();

                    var dashtoCanvas = document.getElementById('yearSubmissionsChart');
                    var toPNG = dashtoCanvas.toDataURL("image/png", 1.0);
                    pdf.addImage(toPNG, 'png', 5, 5, 150,100 );

                    var svg = $('#p1').html();
                    if (svg)
                    svg = svg.replace(/?
|/g, '').trim();
                    var canvas = document.createElement('canvas');
                    var context = canvas.getContext('2d');
                    context.clearRect(0, 0, 170, 130);
                    canvg(canvas, svg);
                    var imgData = canvas.toDataURL('image/png');
                    pdf.text(0, 0, "Birth Year Split");
                    pdf.addImage(imgData, 'PNG', 60, 60, 95, 95);

                    var svg1 = $('#p5').html();
                    if (svg1)
                        svg1 = svg1.replace(/?
|/g, '').trim();
                    var canvas1 = document.createElement('canvas');
                    var context1 = canvas1.getContext('2d');
                    context1.clearRect(0, 0, 170, 130);
                    canvg(canvas1, svg1);
                    var imgData1 = canvas1.toDataURL('image/png');
                    pdf.text(15, 15, "Valid vs Invalid child NRIC");
                    pdf.addImage(imgData1, 'PNG', 70, 70, 95, 95);
pdf.save("gsb-dashboard-charts.pdf");
            });

        });][1]][1]

Charts are showing in PDF but not in a well format. I convert SVG into canvas and then including in PDF. Please see attached image.

PDF screenshot: https://i.stack.imgur.com/nQ1OJ.png

need to deliver this today.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
    • ¥15 求解 yolo算法问题
    • ¥15 虚拟机打包apk出现错误
    • ¥30 最小化遗憾贪心算法上界
    • ¥15 用visual studi code完成html页面
    • ¥15 聚类分析或者python进行数据分析
    • ¥15 三菱伺服电机按启动按钮有使能但不动作
    • ¥15 js,页面2返回页面1时定位进入的设备
    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。