Java で canvg https://code.google.com/p/canvg/のネイティブ メソッドを使用して、SVG 文字列をキャンバスから png 画像に変換します。SVG 文字列の画像をレンダリングする時間が必要なため、renderCallback が必要です。そうしないと、間違った構造が得られます。コードは次のとおりです。
private native String PNGExport(String SVGString)/*-{
var canvas = $doc.createElement('canvas');
canvas.id = "testcanvas";
var img;
$wnd.canvg(canvas, SVGString, {
renderCallback : function() {
img = canvas.toDataURL("image/png");
var window = $wnd.open();
window.document.write('<img src="' + img + '"/>');
},
});
return img;
}-*/;
したがって、正しい png 画像を含むタブがブラウザーで開かれます。しかし、この String img = canvas.toDataURL("image/png"); を取得する可能性はありますか? コールバックの外で作業していますか? 私が想像できる唯一のことは、img var をパラメーターとして取得する function() 内で Java メソッドを呼び出すことです。より良い解決策があることを願っています。