2012-10-23 1 views
1

내 페이지에 svg가있어서 png로 내보낼 필요가 있으므로, here의 조언에 따라 canvg를 사용하고 있습니다.SVG를 캔버스에 복사 한 후 이상한 성장이 있습니다.

복사본이 처음에는 제대로 작동하지만 캔버스 높이는 신비하게 증가하기 시작합니다.

나는 분명히 잘못된 것을하고 있습니까? 나는 행운을 빌어 모든 종류의 캔버스 크기를 설정해 보았습니다. IE와 Chrome에서 실패합니다. http://jsfiddle.net/LkqTU/4772/

문제는 스크롤 할 때 더 악화 될 것으로 보인다 :

여기
function copytocanvas() 
{ 
    var c = document.getElementById('canvas'); 
    c.width = $('#svgChart').width(); 
    c.height = c.width; 
    c.getContext = document.getElementById('canvas').getContext; 


    var svg = document.getElementById('svgChart'); // or whatever you call it 
    var serializer = new XMLSerializer(); 
    var str = serializer.serializeToString(svg); 

    canvg(c, str); 
} 

문제를 보여주기 위해 jsfiddle입니다 :

여기 내 내보내기 기능입니다!

+0

canvg는 마우스를 움직일 때마다 캔버스 크기를 조정하는 것처럼 보입니다. 'canvg (c, str, {ignoreMouse : true});'캔버스가 계속 크기를 조정하는 것을 멈추지 만 캔버스는 여전히 크기가 큽니다. – Shmiddty

답변

1

이 시도 :

canvg(c, str, {ignoreMouse:true, ignoreDimensions:true});

편집 :

당신이 ignoreMouse에 필요하지 않은 것 같습니다

:

canvg(c, str, {ignoreDimensions:true}); 트릭을 할해야합니다.

+0

감사합니다 - 잘 작동합니다. – woggles

관련 문제