0

ExtJs で作成されたグラフを、TCPDF を使用して PDF にエクスポートしたいと考えています。私はHTMLコードをTCPDFに渡すためにそのように処理しています:

var activeTabId = Ext.getCmp('tabs').activeTab.id
            , activeTab = Ext.getCmp('tabs').activeTab
            , svgHtml = '@<svg version="1.1" style="width: 700px; height: 400px;" xmlns="http://www.w3.org/2000/svg">'
            , html=''
            , svg = $("#"+activeTabId+" svg")
            , svgArray=[];

        svg.each(function(){
            svgArray.push(svgHtml+svg.html()+'</svg>');
            html+= svgHtml+svg.html()+'</svg>';
        });

        svgJSON = JSON.stringify(svgArray);

        $.post('tcpdf/examples/example_058.php', { svg : svgJSON }, function(data){
            //window.location.href='tcpdf/examples/example_058.pdf';
            console.log(data);
        });

そして、svg 画像を描画するサンプル 058 を使用しています。コードは次のとおりです。

$svg = isset($_POST['svg'])?json_decode($_POST['svg']):NULL;
$yDepart = 30;
$svgHeight = 200;
echo '{ svgLength :'.count($svg).'}';
for($i=0;$i<count($svg);$i++){
    $pdf->AddPage('P', $page_format, false, false);
    $pdf->ImageSVG($svg[$i], $x=0, $y=$yDepart, $w=350.0, $h=400.0, $link='', $align='M', $palign='C', $border=0, $fitonpage=true);
}

問題は、出力 PDF に同じ重複したチャートが含まれていることです。読んでくれてありがとう。

4

1 に答える 1

0

私は間違いを見つけました:

問題のあるコードは次のとおりです。

svg.each(function(){
            svgArray.push(svgHtml+svg.html()+'</svg>');
            html+= svgHtml+svg.html()+'</svg>';
        });

私はこれでそれを変更しました:

svg.each(function(){
    svgArray.push(svgHtml+$(this).html()+'</svg>');
    html+= svgHtml+$(this).html()+'</svg>';
});
于 2013-08-16T13:23:27.210 に答える