重复svg图像输出TCPDF
Duplicated svg image output TCPDF
我想使用TCPDF以PDF格式导出ExtJs制作的一些图表。我正在像这样处理将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);
});
然后我使用的例子058绘制svg图像。这是代码:
$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包含相同的重复图表。感谢您的阅读。
我发现了错误:
这是有问题的代码:
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>';
});
相关文章:
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- PHP中的数组输出
- 以不同的顺序输出数据
- 使用Rivets.js输出类
- 在Chrome扩展内部输出Google API调用
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 一个ajax循环有两个输出错误innerHTML
- 快速排序程序未正确输出
- 函数将输出nan而不是数字,为什么
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 如何在页面一侧的浮动框中显示用户脚本的输出
- 重复svg图像输出TCPDF