1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelにmermaid.jsのSVG画像を挿入するとテキストが表示されない件

Last updated at Posted at 2022-07-26

経緯

mermaid.jsで生成したSVGをExcel/PowerPoint/Wordに画像として挿入すると

  • テキストだけ表示されないもの
  • 色がおかしくなるもの

などの症状に遭遇したので、mermaid.js公式ページの

  • flowchart
  • sequenceDiagram
  • classDiagram
  • stateDiagram-v2
  • erDiagram
  • journey
  • gantt
  • pie
  • requirementDiagram
  • gitGraph
  • C4Context

のサンプルからSVGを作成して、Officeアプリへの貼り付けと解析を実施。

(※v9.1.7時点)

調査結果

SVGの中身はテキストなのでエディタでいろいろ編集して画像挿入を試してみた結果、Officeアプリは

  • <foreignObject>~</foreignObject>の間にあるテキストをパースできてない
    (Inkscapeもパースできてないけど)
    ※mermaid.jsのflowchart/classDiagram/stateDiagram-v2あたりが該当

  • 色指定がhsl()だと同じくパースできない
    ※mermaid.jsのsequenceDiagramのループの点線/pieなど

ことが判明。

思案

Microsoftに修正依頼するべきか、mermaid.js開発者に

<switch>
<foreignObject>
テキスト
</foreignObject>
<text >
テキスト
</text>
</switch>

のように

  • <switch>&<text>タグの追加
  • 色指定をRGB()に統一

をお願いするべきか。

余談

ちなみに、mermaid.js v9.1.3のC4Contextは生成されたSVG内の

<image xlink:href~

の"xlink:"を削除してやれば表示できるようになります。
v9.1.7では直ってますね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?