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 C# datagridview 栏位进度
    • ¥15 vue3页面el-table页面数据过多
    • ¥100 vue3中融入gRPC-web
    • ¥15 kali环境运行volatility分析android内存文件,缺profile
    • ¥15 写uniapp时遇到的问题
    • ¥15 vs 2008 安装遇到问题
    • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
    • ¥15 找一个网络防御专家,外包的
    • ¥100 能不能让两张不同的图片md5值一样,(有尝)
    • ¥15 informer代码训练自己的数据集,改参数怎么改