Невозможно напечатать d3js svg через jspdf - PullRequest
0 голосов
/ 23 марта 2019

Я хочу напечатать диаграмму svg, которую я создал с помощью d3.js, используя jspdf

Я получаю узел svg и сериализую его.Затем создайте изображение, определив его источник.Затем я рисую изображение на элементе canvas и преобразую холст в URL-адрес данных, который я использую для добавления изображения через pdfjs.

в компоненте, где я создаю svg

public svgToDataURL(){
    const svg = this.svg,
      img = new Image(),
      serializer = new XMLSerializer(),
      svgStr = serializer.serializeToString(svg.node());

    img.src = 'data:image/svg+xml;base64,'+window.btoa(svgStr);
    console.log(img.src)

    const canvas = document.createElement("canvas");

    canvas.width = this.width;
    canvas.height = this.height;
    canvas.getContext("2d").drawImage(img,0,0,this.width,this.height);
    return canvas.toDataURL("image/png");
  };

в компонентегде я печатаю svg

  @ViewChildren(RadarChart) radarCharts: QueryList<RadarChart>;
  renderRadarsPDF() {
    const doc = new jsPDF();
    const uris = this.radarCharts.forEach((r, index) => {
      const url = r.svgToDataURL();
      doc.addImage(url, "PNG", 10, (index * 420) + 10, 400, 420);
    });
    doc.save('Test.pdf');
  }

Он не выдает ошибку, но печатает пробел.Кроме того, когда я пытаюсь отобразить URL-адрес данных в браузере, он пуст

...