Печать iframe в PDF - как получить контент со страницы с помощью VueJS - PullRequest
1 голос
/ 26 марта 2019

Я пытаюсь распечатать информационную панель из моего приложения.На панели инструментов есть встроенные графики iFrame, и я хочу включить их в PDF.

Я использую JSPDF .Я могу создать PDF текстовых элементов, чтобы плагин работал правильно.

У меня вопрос, как мне получить контент из iFrame.Вот где я сейчас нахожусь:

В моем html-файле:

<iframe class="myiframe" v-bind:src="iframe_url"></iframe>

и моем скрипте vuejs:

import jsPDF from 'jspdf'
export default {
    methods: {
        downloadPDF() {
           const doc = new jsPDF();
          // some code...          
          // iFrames
          vOffset + 10
          doc.text(25, vOffset, 'Data Flows')
          var iFrameBody = document.getElementById('myiframe')
          doc.fromHTML(iFrameBody, 15, vOffset)
          doc.save("sample.pdf")
    }

    }

}

PDF печатается правильно, но там, где нетДолжен появиться iFrame.

Я искал в github-репозитории jsPDF для поиска решений, но также не нашел ничего подходящего.

Любые советы будут хороши.

1 Ответ

1 голос
/ 26 марта 2019

Похоже, я столкнулся с двумя проблемами.

  1. Во-первых, я неправильно получал контент из iFrame.Изменение этой строки
var iFrameBody = document.getElementById('myiframe')

на эту

var iFrameBody = this.$refs.myiframe.contentWindow.document

.. дало мне доступ к документу iframe.

Однако, как хорошо объяснено в этом решении , я столкнулся с проблемой same-origin-policy .Это то, что @hammerbot упомянул в своем комментарии.
...