2016-11-24 22 views
1

私はTCPDF phpライブラリを使用して自分のsvgをpdfに変換しています。私のsvgはbody、div、およびspanを持つforeignObjectを持っていて、テキスト内にいくつかのコメントを表示します。 ブラウザでそのSVGを見ると、その外観はきれいですが、TCPDFを使ってPDFに変換すると、灰色の背景が表示されている場所にテキストが表示される空きスペースが増えています。SVGのForeignobjectは変換されず、TCPDFによってPDFで表示されます

+0

ようこそStackoverflow。あなたの質問を改善するためにこれらのリンクを読んでください:[ツアー](http://stackoverflow.com/tour)| [質問する](http://stackoverflow.com/help/how-to-ask)| – Tom

答えて

1

あなたはSVGで<foreignObject>を使用する場合は、SVGをレンダリングするだけでなく、HTMLをレンダリングするだけでなく、コンバータが必要になります。おそらく誰かがHTMLをサポートするSVGコンバータを販売していますが、私はそれを認識していません。ユーザはSVG非SVGコンテンツを埋め込むことができるように

SVG標準は、<foreignObject>要素を提供します。 SVG標準では、foreignObjectに配置される可能性のある特定のタイプのコンテンツをサポートするためにSVGレンダリングを必要としません。

ブラウザはのforeignObjectでHTMLをサポートしているという事実は、純粋にHTMLビューアであること、それらの結果として明らかです。

foreignObjectの使用を避ける以外に、明確かつ明白な回避策はありません。

あなたはベクトルとしてSVGコンテンツの滞在はPDFへの変換時、あなたはビットマップにSVGを変換するphantomjsのようなものを使用することができることを気にしない場合。その後、そのビットマップをPDFに変換します。それは非常に素晴らしい解決策ではありません。

+0

ブラウザでうまく動作しているBrowerに問題はありません。しかし、そのSVGをTCPDFで使用しているときは、foreignObject要素出現していない。そして、はい、私はベクトル形式で滞在するSVGが必要です。私は$ pdf-> ImageSVG($ file = 'images/tux.svg'、$ x = 30、$ y = 100、$ w = ''、$ h = 100、$ link = ''、$ align = ''、$ palign = ''、$ border = 0、$ fitonpage = false); TCPDFからPDFでsvgを追加する場合 –

+0

HTMLをサポートするSVGからPDFへのコンバータを見つけることをお勧めします。 ''を使わないようにSVGを変更することを真剣に考えなければならないかもしれません。 –

+0

@PaulLeBeau "draw.io"のしくみを見てください。彼らは間違いなくテキストを表示するためにsvgのforeignObjectを使用します。そして、いくつかのサーバー側コンバータを使用してこのsvgをpdfに変換します。彼らはどのようなコンバータを使用しますか? – krispo

関連する問題