javascript svg в png uri обещают создать jspdf - PullRequest
0 голосов
/ 15 октября 2019

Я использую jspdf для создания отчета в формате PDF, содержащего текст и изображения. Чтобы сгенерировать изображение, я ссылаюсь на объект svg и создаю png, используя saveSvgAsPng . Вот мой фрагмент кода:

function generate_pdf() {
  // creating a blank PDF report
  var doc = new jsPDF()
  doc.text('Hello world!', 10, 15)

  // turning d3 viz into an in-memory png uri
  var svg_uri = svgAsPngUri(
    document.getElementsByTagName("svg")[0],
    {scale: 2, backgroundColor: "#FFFFFF"},
  ).then(function (uri) {
    console.log(uri)
    doc.addImage(uri, 'PNG', 15, 40);
  })

  // populating data onto pdf
  doc.save('test.pdf')
}

Когда я console.log(uri), я получаю ожидаемый кодированный base64 png. Однако, когда я пытаюсь получить доступ к объекту svg_uri вне функции svgAsPngUri, мне возвращается ожидающее обещание - поэтому я и являюсь addImage внутри then.

Я новичок в JavaScript, и еще больше новичок в promises, поэтому ищу помощь в понимании того, что я делаю неправильно.

Цель - вывести pdf, содержащий Hello world! вместе с png, сгенерированным из svg.

Спасибо! Если я могу добавить что-нибудь еще, пожалуйста, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...