Я использую Vue.js и у меня есть шаблон (HTML), который я хочу сделать в PDF, затем взять этот PDF и сделать его для BLOB-объектов, а затем работать с этим BLOB-объектом.В моем примере кода, когда нажата кнопка «Print Form» вызывается функция «printPdf» , остается только одна строка кода «window.print ()» и сразу же вызывается событие "onbeforeprint" .И это то место, где я надеюсь как-то создать PDF, а затем сделать его для блоба.
<template>
<div class="hello">
<form method="post"
action="#"
id="printJS-form">
<h1>PDF Test</h1>
<ul>
<li><a href="https://router.vuejs.org"
target="_blank"
rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org"
target="_blank"
rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools"
target="_blank"
rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org"
target="_blank"
rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue"
target="_blank"
rel="noopener">awesome-vue</a></li>
</ul>
</form>
<button type="button"
v-on:click="printPdf">
Print Form
</button>
</div>
</template>
<script>
export default {
name: 'print-pdf-tets',
props: {
msg: String
},
created() {
window.onbeforeprint = () => {
// get PDF and make it to blob
};
},
methods: {
printPdf() {
// enters here first, and calls onbeforeprint event
window.print();
// close window
},
}
}
</script>
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
Моя идея состоит не в том, чтобы печатать PDF, а в том, чтобы создать его для BLOB-объектов. Таким образом, вся эта операция будет скрыта от пользователя.И это мой вопрос:
Как создать PDF из HTML, а затем сделать этот PDF для блобинга?