Php SVG从DOM保存后已损坏

Php SVG从DOM保存后已损坏,php,html,pdf,svg,Php,Html,Pdf,Svg,我需要将一些SVG图像从网页导出到PDF文件。 使用SVG创建PDF应该是可能的(示例58) 但首先,我需要将来自DOM的SVG保存到一个文件中。 我想我可以简单地复制svg元素并将其保存在一个文件中(如上所述)。 但是这样做会给我一个错误的SVG图像 下面是我要导出的SVG示例: 1002/Frau A…1002/Frau Anna Marie Maier1002/Frau S…1002/Frau Sara Gut-Ski1002/Frau Si…1002/Frau Simone Meier-

我需要将一些SVG图像从网页导出到PDF文件。 使用SVG创建PDF应该是可能的(示例58)

但首先,我需要将来自DOM的SVG保存到一个文件中。 我想我可以简单地复制svg元素并将其保存在一个文件中(如上所述)。 但是这样做会给我一个错误的SVG图像

下面是我要导出的SVG示例:
1002/Frau A…1002/Frau Anna Marie Maier1002/Frau S…1002/Frau Sara Gut-Ski1002/Frau Si…1002/Frau Simone Meier-Eisenhut1002/Herr K…1002/Herr Kurt Nauser 1002/Herr P…1002/Herr Paolo Meyer2200/Frau A…2200/Frau Anna Marie Maier2200/Frau S…2200/Frau Sara Gut-Ski2200/Frau S…2200/Frau Si…2200/Frau SimoneMeier-Eisenhut2200/先生K…2200/先生Kurt Nauser 2200/先生P…2200/先生Paolo MeyerZAHL4003002001000

Inkscape似乎不喜欢这个SVG的三个方面:

  • fill=“transparent”

    有些矩形具有此填充。Inkscape似乎不支持这个新的CSS3颜色值。Inkscape将它们视为
    fill=“black”
    。修复:将其替换为
    fill=“none”

  • visibility=“hidden”

    有些元素是隐藏的。Inkscape似乎也不喜欢这样。修正:移除它们

  • fill=“rgba(…)”

    Inkscape似乎也不了解RGBA颜色
    rgba()
    也是CSS3中新增的功能。修复方法:将它们替换为
    fill=“rgb(…)”
    (或
    fill=“#rrggbb”
    )和
    fill opacity=“…”
    )。例如:
    fill=“rgba(255,255,255,0)”
    变成
    fill=“rgb(255,255,255)”fill opacity=“0”

  • 下面是在Inkscape中正确显示的SVG的修改版本。我使用的是0.91(当前的稳定版本)。Inkscape的新版本面世后,很可能会解决这些问题

    我预计,部分或全部这些问题也将影响TCPDF。尝试“固定”版本的文件,看看它是否工作得更好

    我不知道你用的是什么绘图软件包。为其他图形纠正这些问题可能涉及修改图形代码,或者要求其作者修复它,使其暂时不使用CSS3功能

    
    1002/A女士。。。
    1002/安娜·玛丽·梅尔夫人
    1002/S女士。。。
    1002/Sara Gut Ski女士
    1002/西夫人。。。
    1002/西蒙娜·梅尔·艾森豪特夫人
    1002/K先生。。。
    1002/库尔特·纳瑟先生
    1002/P.先生。。。
    1002/保罗·迈耶先生
    2200/A女士。。。
    2200/安娜·玛丽·梅尔夫人
    2200/弗劳S。。。
    2200/萨拉·古特女士滑雪场
    2200/西夫人。。。
    2200/西蒙娜·梅尔·艾森豪特夫人
    2200/K先生。。。
    2200/库尔特·纳瑟先生
    2200/先生。。。
    2200/保罗·迈耶先生
    扎尔
    400
    300
    200
    100
    0