キャンバスに描画する必要のあるSVGテキストの行がたくさんあります。SVGオブジェクトをSVGデータURIに変換し、それを画像のソースに適用してから、その画像をキャンバスに描画していますが、何らかの理由で特定の幅と高さの後にテキストがクリッピングされています。
他の画像も最初にキャンバスに描画しているので(テキストよりもはるかに幅が広く、背が高い)、問題はキャンバスのサイズではないことを私は知っています。もう一つの奇妙なことは、私が画像を撮ってそれを体に追加すると、それが完全に出てくるということです。
var imageText = new Image();
imageText.src = "data:image/svg+xml;base64," + btoa($("#text_container").html());
imageText.onload = function() { context.drawImage(imageText, 0, 0); };
#text_containerは、すべてのSVGコードを保持する私のDIVです。
編集:詳細を説明するために、以下にコメントを書きました。ユーザーがカスタムサッカーを作成できるJSアプリケーションを構築しています。ボールとテキストのさまざまな色と機能を変更できるため、SVGテキストを含むいくつかのDIVに要約されます(テキストは円弧状のパスに沿っているため)。DIVの背景画像を取得し、それをキャンバスにうまく描画して、サッカーを作成できます。テキストがトリミングされているため、テキストをキャンバスに描画しようとすると問題が発生します。次に、そのキャンバス要素を取得して、ユーザーが保存できるようにPNGに変換します。
テキストを上下に移動して、トリミングがよく見えるようにしました。ご覧のとおり、ボールはうまく描画されます。 http://i.imgur.com/Sngu4.png