使用svglib和reportlab使用Python处理SVG时出错

2024-09-29 23:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个图像格式转换器,可以将不同的图像格式转换为不同的图像格式。在我开始测试SVG的转换之前,一切都很顺利。错误是Can't handle color: url(#SVGID_1_),它只与一些SVG一起出现。此错误是在读取SVG时发生的,而不是在转换SVG时发生的。我的代码是:

svg_data = svg2rlg(filename) # Error Here
renderPM.drawToFile(svg_data, output_filename, fmt="PNG")

和SVG的代码:

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
    .st0{fill:url(#SVGID_1_);}
    .st1{fill:url(#SVGID_2_);}
    .st2{fill:url(#SVGID_3_);}
    .st3{fill:url(#SVGID_4_);}
    .st4{fill:url(#SVGID_5_);}
    .st5{fill:url(#SVGID_6_);}
    .st6{fill:url(#SVGID_7_);}
    .st7{fill:url(#SVGID_8_);}
    .st8{fill:url(#SVGID_9_);}
    .st9{fill:url(#SVGID_10_);}
    .st10{fill:url(#SVGID_11_);}
    .st11{fill:url(#SVGID_12_);}
    .st12{fill:url(#SVGID_13_);}
    .st13{fill:url(#SVGID_14_);}
    .st14{fill:url(#SVGID_15_);}
    .st15{fill:url(#SVGID_16_);}
    .st16{fill:url(#SVGID_17_);}
    .st17{fill:url(#SVGID_18_);}
    .st18{fill:url(#SVGID_19_);}
    .st19{fill:url(#SVGID_20_);}
    .st20{fill:url(#SVGID_21_);}
    .st21{fill:url(#SVGID_22_);}
    .st22{fill:url(#SVGID_23_);}
    .st23{fill:url(#SVGID_24_);}
    .st24{fill:url(#SVGID_25_);}
    .st25{fill:url(#SVGID_26_);}
    .st26{fill:url(#SVGID_27_);}
    .st27{fill:url(#SVGID_28_);}
    .st28{fill:url(#SVGID_29_);}
    .st29{fill:url(#SVGID_30_);}
    .st30{fill:url(#SVGID_31_);}
    .st31{fill:url(#SVGID_32_);}
    .st32{fill:url(#SVGID_33_);}
    .st33{fill:url(#SVGID_34_);}
    .st34{fill:url(#SVGID_35_);}
    .st35{fill:url(#SVGID_36_);}
    .st36{fill:url(#SVGID_37_);}
    .st37{fill:url(#SVGID_38_);}
    .st38{fill:url(#SVGID_39_);}
    .st39{fill:url(#SVGID_40_);}
    .st40{fill:url(#SVGID_41_);}
    .st41{fill:url(#SVGID_42_);}
    .st42{fill:url(#SVGID_43_);}
    .st43{fill:url(#SVGID_44_);}
    .st44{fill:url(#SVGID_45_);}
    .st45{fill:url(#SVGID_46_);}
    .st46{fill:url(#SVGID_47_);}
    .st47{fill:url(#SVGID_48_);}
    .st48{fill:url(#SVGID_49_);}
    .st49{fill:url(#SVGID_50_);}
    .st50{fill:url(#SVGID_51_);}
    .st51{fill:url(#SVGID_52_);}
    .st52{fill:url(#SVGID_53_);}
    .st53{fill:url(#SVGID_54_);}
    .st54{fill:url(#SVGID_55_);}
    .st55{fill:url(#SVGID_56_);}
    .st56{fill:url(#SVGID_57_);}
    .st57{fill:url(#SVGID_58_);}
    .st58{fill:url(#SVGID_59_);}
    .st59{fill:url(#SVGID_60_);}
    .st60{fill:url(#SVGID_61_);}
    .st61{fill:url(#SVGID_62_);}
    .st62{fill:url(#SVGID_63_);}
    .st63{fill:url(#SVGID_64_);}
    .st64{fill:url(#SVGID_65_);}
    .st65{fill:url(#SVGID_66_);}
    .st66{fill:url(#SVGID_67_);}
    .st67{fill:url(#SVGID_68_);}
    .st68{fill:url(#SVGID_69_);}
    .st69{fill:url(#SVGID_70_);}
    .st70{fill:url(#SVGID_71_);}
    .st71{fill:url(#SVGID_72_);}
    .st72{fill:url(#SVGID_73_);}
    .st73{fill:url(#SVGID_74_);}
    .st74{fill:url(#SVGID_75_);}
    .st75{fill:url(#SVGID_76_);}
    .st76{fill:url(#SVGID_77_);}
    .st77{fill:url(#SVGID_78_);}
    .st78{fill:url(#SVGID_79_);}
    .st79{fill:url(#SVGID_80_);}
    .st80{fill:url(#SVGID_81_);}
    .st81{fill:url(#SVGID_82_);}
    .st82{fill:url(#SVGID_83_);}
    .st83{fill:url(#SVGID_84_);}
    .st84{fill:url(#SVGID_85_);}
    .st85{fill:url(#SVGID_86_);}
    .st86{fill:url(#SVGID_87_);}
    .st87{fill:url(#SVGID_88_);}
    .st88{fill:url(#SVGID_89_);}
    .st89{fill:url(#SVGID_90_);}
    .st90{fill:url(#SVGID_91_);}
    .st91{fill:url(#SVGID_92_);}
    .st92{fill:url(#SVGID_93_);}
    .st93{fill:url(#SVGID_94_);}
    .st94{fill:url(#SVGID_95_);}
    .st95{fill:url(#SVGID_96_);}
    .st96{fill:url(#SVGID_97_);}
    .st97{fill:url(#SVGID_98_);}
    .st98{fill:url(#SVGID_99_);}
    .st99{fill:url(#SVGID_100_);}
    .st100{fill:url(#SVGID_101_);}
    .st101{fill:url(#SVGID_102_);}
    .st102{fill:url(#SVGID_103_);}
    .st103{fill:url(#SVGID_104_);}
    .st104{fill:url(#SVGID_105_);}
    .st105{fill:url(#SVGID_106_);}
    .st106{fill:url(#SVGID_107_);}
    .st107{fill:url(#SVGID_108_);}
    .st108{fill:url(#SVGID_109_);}
    .st109{fill:url(#SVGID_110_);}
    .st110{fill:url(#SVGID_111_);}
    .st111{fill:url(#SVGID_112_);}
    .st112{fill:url(#SVGID_113_);}
    .st113{fill:url(#SVGID_114_);}
</style>
<g>
    <g>
        <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1.3871" y1="12.2831" x2="19.7866" y2="12.2831">
            <stop  offset="0" style="stop-color:#1245C6"/>
            <stop  offset="1" style="stop-color:#9909B7"/>
        </linearGradient>
        <path class="st0" d="M18.6,7.7c-0.8-1.4-1.9-2.5-3.3-3.3c-1.4-0.8-2.9-1.2-4.6-1.2C8.9,3.1,7.4,3.5,6,4.3C4.6,5.1,3.4,6.3,2.6,7.7
            c-0.8,1.4-1.2,2.9-1.2,4.6s0.4,3.2,1.2,4.6c0.8,1.4,1.9,2.5,3.3,3.3c1.4,0.8,2.9,1.2,4.6,1.2c1.7,0,3.2-0.4,4.6-1.2
            c1.4-0.8,2.5-1.9,3.3-3.3c0.8-1.4,1.2-2.9,1.2-4.6C19.8,10.6,19.4,9.1,18.6,7.7z M11.7,17.1c-0.1-0.1-0.1-0.2-0.1-0.2
            c0,0,0,0.1-0.1,0.1c0,0-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.2c0,0,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.2c0-0.1-0.1-0.1-0.1-0.2
            c0-0.1,0-0.1,0-0.1c-0.2,0.1-0.4,0-0.7-0.1c-0.1,0-0.1-0.1-0.3-0.3s-0.2-0.2-0.3-0.2c0,0-0.1,0-0.2,0c-0.1,0-0.1,0-0.2,0
            c0,0-0.1,0-0.2,0c-0.1,0-0.1-0.1-0.3-0.1c-0.1-0.1-0.2-0.1-0.2-0.1c-0.1-0.1-0.2-0.1-0.2-0.1l-0.2-0.1c0,0-0.1-0.1-0.1-0.1
            C8.1,14.9,8,14.9,8,14.8c0,0,0-0.1-0.1-0.3c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.2-0.1-0.2-0.1
            c0.1,0,0.1-0.1,0-0.2c-0.1-0.1-0.1-0.2-0.2-0.2c0,0-0.1-0.1-0.1-0.2c-0.1-0.1-0.1-0.2-0.2-0.2c-0.1-0.1-0.1-0.1-0.1-0.2
            c0-0.1,0-0.2,0-0.2c0,0,0,0,0,0c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0c0,0,0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2
            c0,0,0.1,0.1,0.2,0.3C7,13.6,7.1,13.8,7,14c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1c0-0.1,0-0.1,0-0.1c0,0-0.1-0.1-0.2-0.2
            c-0.1-0.1-0.2-0.1-0.2-0.2c0,0,0,0,0,0c0,0,0,0,0,0c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.1-0.2-0.1-0.2c-0.1,0-0.1-0.1-0.2-0.3
            c0-0.1-0.1-0.2-0.1-0.3c0,0-0.1-0.1-0.1-0.1c0,0-0.1-0.1-0.2-0.1c-0.1,0-0.1-0.1-0.1-0.1c0,0,0,0-0.1-0.1
            c-0.3-0.3-0.3-0.5-0.2-0.5c-0.1,0-0.2-0.1-0.3-0.2c-0.1-0.2-0.1-0.3-0.1-0.4l0,0c0,0,0-0.1,0-0.3c0-0.2,0-0.3,0-0.4
            C5,9.8,5,9.8,5.1,9.8C5,9.8,5,9.7,5,9.6c0-0.1,0-0.2,0-0.2c0,0,0,0,0.1,0c0.1,0.1,0.1,0.1,0.1,0.1c0.1-0.1,0.1-0.1,0.1-0.2
            c0,0-0.1-0.1-0.3-0.3C4.7,8.8,4.5,8.7,4.5,8.7c0-0.1,0-0.2,0-0.2c-0.1,0-0.1,0.1-0.1,0c0,0,0-0.1,0-0.1c0-0.1,0-0.1-0.1-0.1
            c0,0-0.1,0-0.1-0.1c0.7-1.1,1.6-2,2.8-2.7c0,0,0.1,0,0.3,0c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0.1,0.1,0.1,0.1,0.1
            c0,0,0-0.1-0.1-0.2c0,0,0.1-0.1,0.3-0.1c0.2,0,0.3,0,0.4,0c0-0.1-0.1-0.2-0.2-0.3L7.9,5.3c-0.1-0.1-0.2,0-0.5,0.1
            c0,0-0.1,0-0.1,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0-0.1,0-0.1,0C7.4,5.3,7.8,5.1,8.1,5c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.1,0.1,0.1
            c0,0,0,0,0,0c0,0.1,0,0.2,0,0.2c0,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.2,0l0.1,0c0.3,0,0.4,0,0.3-0.1
            c0,0,0.1,0.1,0.1,0.2c0,0.1,0.1,0.2,0.1,0.2c0,0,0-0.1,0-0.2c0-0.1,0-0.1,0-0.2c0,0,0,0,0.1,0c0,0,0.1,0,0.1-0.1
            c0.1,0,0.1,0,0.1,0c0,0,0-0.1-0.1-0.2c0,0,0,0-0.1,0c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.1-0.1c0,0-0.1-0.1-0.1-0.1c0,0,0-0.1,0.1-0.1
            c0,0,0.1-0.1,0.2,0c0.1,0,0.2,0,0.2,0.1C10.1,5,10.2,5.1,10,5.2c0.1,0,0.2,0,0.3,0.1c0.1,0.1,0.2,0.1,0.1,0.2
            c0.1-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0.1,0.1,0.2c0,0.1,0.1,0.2,0.1,0.2c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1-0.1,0.2-0.2
            c0.1-0.1,0.1-0.1,0.1-0.1c-0.1,0-0.1-0.1,0-0.1c0.1-0.1,0.2-0.1,0.3-0.1c0,0,0.1,0.1,0.1,0.1c0.1,0.1,0.1,0.2,0,0.2
            c0.1,0.1,0.1,0.1,0.1,0.2c0,0.1-0.1,0.1-0.2,0.1c0,0-0.1,0-0.2-0.1c-0.1,0-0.1-0.1-0.2-0.1c0,0-0.1,0-0.2,0.1c0,0-0.1,0.1-0.1,0.2
            c-0.1,0.1-0.1,0.2-0.1,0.2c-0.1,0.1-0.3,0.2-0.6,0.1c0,0,0,0,0,0.1c0,0-0.1,0.1-0.1,0.2C10,6.7,10,6.7,10,6.7
            C9.9,6.8,9.9,6.9,9.8,7c0,0,0,0.1,0,0.2c0,0.1,0,0.2,0,0.2c0.1,0,0.2,0,0.2,0.1c0,0.1,0,0.2,0,0.2c0.3,0,0.5,0,0.7,0
            C11,7.8,11.1,7.9,11.2,8c0-0.1,0.2-0.1,0.3,0c0.1,0,0.1,0.2,0.2,0.4c0,0.1,0.1,0.2,0.2,0.3C12,8.8,12,8.8,12.1,8.8l0,0
            c0,0,0.1,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0-0.1c0,0,0,0,0,0c-0.1,0-0.1-0.1-0.1-0.2c0-0.1,0-0.2,0-0.2c0,0,0.1-0.1,0.2-0.1
            c0.1-0.1,0.2-0.1,0.2-0.2c0-0.1,0-0.2-0.1-0.3c-0.1-0.1-0.2-0.1-0.2-0.2c0,0,0-0.1,0.1-0.1c0.1-0.1,0.1-0.1,0.1-0.2
            c0,0,0-0.1,0-0.1c0-0.1,0-0.1,0-0.2c0,0,0-0.1,0.1-0.1c0.1,0,0.2,0,0.4,0c0.2,0,0.3,0.1,0.4,0.1c0,0,0.1,0,0.2,0.1
            c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.1,0.1h-0.1c0.1,0,0.1,0.1,0.1,0.2c0,0.1,0,0.1-0.1,0.1c0,0,0.1,0,0.2,0
            c0.1,0,0.1,0.1,0,0.1c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0.1,0c0,0,0,0,0.1-0.1
            c0,0,0.1-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0,0,0,0,0.1,0c0,0,0,0,0,0.1c0,0,0,0,0,0.1c0,0,0,0.1,0,0.1c0,0,0.1,0.1,0.1,0.1
            c0.1,0,0.1,0.1,0.1,0.1c0,0,0,0.1,0,0.2C15,7.9,15,7.9,15.1,8c0,0,0.1,0.1,0.2,0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.1,0
            c0,0,0.1,0,0.1,0.1c0,0,0.1-0.1,0.1-0.1c0,0.1,0,0.2,0.1,0.3c0,0.1,0.1,0.1,0.2,0.1l0,0.3c0,0-0.1,0.1-0.2,0.1
            c-0.1,0-0.2,0-0.2,0.1c0,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.1,0.2c-0.1-0.2-0.3-0.2-0.6-0.1C14.3,9,14.1,9,14,9.1
            c-0.1,0.1-0.2,0.1-0.3,0.2c0,0,0,0,0,0.1c0,0,0,0.1-0.1,0.1c0,0,0,0.1-0.1,0.1c0,0,0.1,0,0.2-0.1c0.1-0.1,0.1-0.1,0.1-0.1
            c0.2-0.1,0.4-0.2,0.5-0.1c0.2,0,0.2,0.1,0.1,0.2c0,0-0.1,0-0.1,0c-0.1,0-0.1,0-0.1,0c0.1,0,0.1,0,0.2,0.1c0,0,0.1,0.1,0,0.1
            c0.1,0.1,0.2,0.2,0.1,0.2c-0.1,0.1-0.2,0.1-0.4,0.1c0,0,0,0,0,0l-0.2,0.1c0,0-0.1,0-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
            c0,0,0,0.1,0,0.1c0,0.1,0,0.1,0,0.1c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.2,0.1-0.2,0.1c0,0.1,0,0.1,0,0.2
            c-0.1,0.1-0.2,0.1-0.3,0c0,0-0.1,0.1-0.1,0.1c0,0.1,0,0.1-0.1,0.1c0.1,0.1,0,0.2,0,0.2c0,0,0,0,0.1,0c0,0,0.1,0,0.1,0.1
            c0,0,0.1,0,0.1,0c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.3-0.2,0.4c0,0-0.1,0.1-0.1,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.1,0
            c-0.1,0.1-0.1,0.1-0.2,0.2c0,0.1,0,0.1,0,0.2c0,0.1,0.1,0.1,0.2,0.1l0,0.1v0.2l0,0.1c0,0.1,0,0.1,0,0.1c0,0,0,0.1,0,0.2
            c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.2-0.2-0.5c0-0.1-0.1-0.2-0.1-0.3c0,0-0.1,0.1-0.1,0.1c0,0,0,0-0.1,0
            c0,0,0,0-0.1-0.1c0,0-0.1,0-0.1-0.1c0,0-0.1,0-0.2-0.1c-0.1,0-0.2,0-0.2-0.1c-0.2,0.1-0.3,0.1-0.3-0.1c0,0,0,0.1,0,0.2
            c0,0.1,0,0.1,0,0.1c-0.1,0.1-0.1,0.1-0.3,0c0,0-0.2-0.1-0.3,0c-0.2,0-0.3,0-0.3,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0.1,0,0.1
            c0,0,0,0,0,0c0,0,0,0-0.1,0c0,0,0,0-0.1,0c0,0-0.1,0.1-0.1,0.1c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0.1,0.2,0.1,0.3c0,0.1,0,0.2,0,0.3
            c0,0.1,0,0.2,0,0.3c0,0.1,0,0.3,0.1,0.4c0.1,0.2,0.2,0.3,0.3,0.3c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.2,0,0.3,0c0,0,0.1-0.1,0.1-0.1
            c0,0,0-0.1,0.1-0.1c0-0.1,0-0.1,0-0.1c0.1-0.2,0.2-0.2,0.3-0.2c0.1,0,0.2,0,0.2,0c0,0,0.1,0.1,0.1,0.1c0,0,0,0.1,0,0.1
            c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.1c0,0.1,0,0.2,0,0.3c0,0.1,0,0.2,0,0.2c0,0,0.1,0,0.2,0c0,0,0,0,0-0.1
            c0,0,0-0.1,0-0.1c0,0.1,0.1,0.1,0.2,0.1c0.1,0,0.2,0,0.2-0.1c0,0,0.1,0.1,0.1,0.2c0.1,0.1,0.1,0.2,0.1,0.2c0,0,0,0.1,0,0.2
            c0,0.1,0,0.1,0,0.1c0,0,0,0-0.1,0c0,0-0.1,0-0.1,0c0,0,0,0.1,0,0.1c0,0,0,0.1,0,0.1c0,0,0,0.1,0,0.1c0,0,0,0.1,0,0.1
            c0.1,0.3,0.3,0.3,0.6,0.2c0,0.2-0.1,0.4-0.2,0.4C11.9,17.3,11.8,17.2,11.7,17.1z M11.9,19.8c0-0.1,0-0.1,0-0.2
            c0-0.1,0-0.1,0.1-0.3c0.1-0.1,0.1-0.2,0.1-0.2c-0.1,0-0.2-0.1-0.1-0.3c0-0.1,0.1-0.3,0.3-0.5c0.2-0.1,0.2-0.3,0.1-0.6
            c0-0.1,0-0.3-0.1-0.5c0-0.2,0-0.3,0-0.4c0,0,0,0,0.1,0.1c0.1,0,0.1,0,0.1,0.1c0,0,0-0.1,0.1-0.1c0-0.1,0-0.1,0.1-0.1
            c0,0,0-0.1,0.1-0.1c0.1,0,0.1-0.1,0.1-0.1c0,0,0.1,0,0.1-0.1c0.1,0,0.1-0.1,0.1-0.1c0,0,0.1,0,0.1-0.1c0.1,0,0.1,0,0.1,0.1
            c0,0,0,0.1,0,0.2c-0.1,0.1-0.1,0.2,0,0.2c0,0,0-0.1,0-0.2c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.1-0.1c0,0,0.1,0,0.1,0
            c0,0,0.1,0,0.1,0.1c0,0,0.1,0.1,0.1,0.1c0.1,0,0.3,0.1,0.4,0.3c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0.1,0c0,0,0,0,0.1,0l0,0
            c0.1,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0.1c0,0,0,0,0.1,0.1c0,0,0.1,0.1,0.1,0.1c0,0,0.1,0,0.1,0.1
            c0.1,0,0.1,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1c0,0,0,0.1,0,0.2c0,0,0.1,0,0.3,0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0,0.1,0.1
            C15,18.8,13.6,19.5,11.9,19.8z"/>
    </g>
</g>
</svg>

有人能帮我解决这个问题吗? 谢谢!:)


Tags: 代码svgurldatastyle错误图像格式filename

热门问题