こんにちは、SVG で問題が発生しました。
まず、入力タイプ ラジオを使用して SVG を HTML に配置します。ユーザーはこの SVG を(パーセンテージ値を持つ幅スタイル属性を追加することで)拡大縮小できます。しかし、それを mpdf (JSON の SVG) に送信すると、機能しません。
次に、PDF のサイズを計算しようとしますが、この SVG のビューボックス/サイズに合わせることができません。
つまり、取得した SVG は次のとおりです。
PDF でレンダリングしたいのですが、寸法が異なります。
function getPrintSize(container) { renderSize = getElementSize(container); letscale = getScale(); // 33 などの整数値を返します 戻る { width: (renderSize.width * 100) /scale, //例: (159 * 100) / 24.127 = 659.013 高さ: (renderSize.height * 100) / スケール //例: (125 * 100) / 24.127 = 518.092 } }
新しい SVG は 659.013px x 518.092px になるはずですが、新しい正しい寸法を設定できません (mPdf は style="width: ..." をサポートしていません。理論的にはこのタグを部分的にサポートしています。ただし、実際にはサポートされていません)。
mPdf では、次のようにレンダリングしてみます。
... $template .= ''.$data->number.' '; ...
この SVG をパスによって拡大縮小する方法を知っている人はいますか?
私の経験では、mPdf や DOmPDF などの PDF ジェネレーターは、相対的なパーセンテージベースの値の処理が困難になる傾向があります。
スケーリング計算が期待どおりに機能する限り、SVG の幅と高さのプロパティを直接変更できます。
計算可能な値を取得するには、次の 2 つの方法のいずれかを使用できます。
リーリー ###または### リーリー最初のメソッドはデフォルトで数値を返し、パーセント値を絶対値 (SVG ユーザー単位に基づく) に変換します。
後者はすべての単位を取り除き、純粋な数値を返します。