【问题标题】:How can I change the stroke-width property of an AmChart graph?如何更改 AmChart 图形的笔画宽度属性?
【发布时间】:2015-06-02 11:54:38
【问题描述】:

我正在使用 AmCharts 图表生成报告,效果很好。当我将页面转换为 pdf 并且在每个图表的框架周围出现黑色笔划时,问题就出现了。当我检查 html 时,我发现如下内容:

<path cs="100,100" d="M0.5,0.5 L609.5,0.5 L609.5,549.5 L0.5,549.5 L0.5,0.5 Z"
fill="#FFFFFF" stroke="#000000" fill-opacity="0" stroke-width="1" stroke-
opacity="0" transform="translate(10,0)"></path>

我可以编辑线条不透明度和线条颜色,它可以在 html 中使用,但是当我使用 wkhtmltopdf 转换为 pdf 时,这些会被忽略,并且每个图表周围都会出现黑色笔划。我该怎么做才能避免这种情况?

【问题讨论】:

    标签: javascript php css wkhtmltopdf amcharts


    【解决方案1】:

    您看到的是图表背景元素。它在屏幕上看不到,因为默认情况下它的不透明度为零。我对 wkhtmltopdf 不太熟悉(我使用的 PhantomJS 没有这个问题)所以我不确定如果不透明度为 0,它为什么会在背景周围显示边框,但是你可以尝试一些技巧。

    首先,我们需要使用addClassNames 属性为图表元素启用类名应用程序。

    AmCharts.makeChart( "chartdiv", {
      ...
      "addClassNames": true,
      ...
    } );
    

    然后,相关的 SVG 节点将附加一个 class="amcharts-bg"。现在您可以通过 CSS 定位它:

    .amcharts-bg, .amcharts-plot-area {
      stroke-width: 0!important;
    }
    

    如果您不使用它,或者直接隐藏整个背景:

    .amcharts-bg, .amcharts-plot-area {
      display: none;
    }
    

    我希望这足以解决 wkhtmltopdf 问题。

    【讨论】:

    • 它没有用。这是html中生成的图表之一gist.github.com/xeppen/67c33fc373f00cc031b7
    • 您是否添加了“addClassNames”参数?我没有看到任何应用于 SVG 节点的类。所以要么你没有添加参数,要么你使用的是一些旧版本的库,在这种情况下你应该升级。
    • 哦不,我忘记了。更新了要点。但它并没有移除面板。
    • 我更新了答案中的 CSS。你介意也试试吗?
    • 仍然是面板。没有任何改变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2013-04-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多