๋ชฉ์ฐจ
javascript/jQuery ๊ธฐ๋ฐ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>htmlToPdf_ex1</title>
</head>
<body>
<!-- pdf๋ก ๋ณํํ element id ์ค์ -->
<div id="pdf-content">
<h1>Hello, PDF!</h1>
<p>This is an example of converting HTML to PDF using html2pdf.js</p>
</div>
<!-- jQuery cdn -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<!-- html2pdf cdn -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
$(function() {
const element = document.getElementById('pdf-content');
html2pdf(element);
});
</script>
</body>
</html>
javascript/Vue.js ๊ธฐ๋ฐ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>htmlToPdf_ex1</title>
</head>
<body>
<!-- pdf๋ก ๋ณํํ element id ์ค์ -->
<div id="pdf-content">
<h1>Hello, PDF!</h1>
<p>This is an example of converting HTML to PDF using html2pdf.js</p>
<!-- ๋ฒํผ ํด๋ฆญ ์ pdfConvert()์์ pdf ๋ณํ ์ฒ๋ฆฌ -->
<button type="button" @click.prevent="pdfConvert">convert</button>
</div>
<!--vue.js ์ถ๊ฐ-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<!-- html2pdf ์ถ๊ฐ -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
new Vue({
el: '#pdf-content',
data: {},
methods: {
pdfConvert() {
const pdfContent = document.getElementById('pdf-content');
html2pdf(pdfContent);
},
},
});
</script>
</body>
</html>
์จ๊น ํญ๋ชฉ PDF ๋ณํ ์์
์จ๊น ํญ๋ชฉ์ ๋ฒํผ ํด๋ฆญ ์ ์ ์ ๋ณด์ด๊ฒ ํด์ PDF ๋ณํ ํ ๋ค์ด๋ก๋ ํ ๋ค์ ์จ๊น์ฒ๋ฆฌ ํ๋ ์์
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>htmlToPdf_ex1</title>
<style type="text/css">
.hidden {
display: none;
}
</style>
</head>
<body>
<div id="app">
<div id="pdf-content" class="hidden">
<h1>Hello, PDF!</h1>
<p>This is an example of converting HTML to PDF using html2pdf.js</p>
</div>
<button type="button" @click.prevent="pdfConvert">convert</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
new Vue({
el: '#app',
data: {},
methods: {
// async์ ๋ถ์ฌ์ promise๋ฅผ ๋ฐํํ๊ฒ ํ๊ณ
async pdfConvert() {
const pdfContent = document.getElementById('pdf-content');
pdfContent.style.display = 'block';
const options = {
margin: 10,
filename: 'example.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
};
//html2pdf() ์์
์ด ๋๋ ๋๊น์ง ๋ค์ ์ฝ๋ ์คํ ์ ์ ๋ฉ์ถค(pdf ๋ณํ ์ด๋ฃจ์ด์ง ๋ค์์ ๋ค์์ฝ๋ ์คํ)
await html2pdf().from(pdfContent).set(options).save();
pdfContent.style.display = 'none';
},
},
});
</script>
</body>
</html>
๊ฒฐ๊ณผ
์์ฝ๋ ์๋ํฐ์ ๋ถ์ฌ ๋ฃ๊ณ ์คํํ๋ฉด pdf ๋ค์ด๋ก๋ ์ฐฝ ํ์๋จ
reference: https://github.com/eKoopmans/html2pdf.js
GitHub - eKoopmans/html2pdf.js: Client-side HTML-to-PDF rendering using pure JS.
Client-side HTML-to-PDF rendering using pure JS. Contribute to eKoopmans/html2pdf.js development by creating an account on GitHub.
github.com
์ด๊ฑด ํ๋ฉด ์บก์ฒ ์ฉ๋์ด๊ณ ์๋ฒ์ ํต์ ํ๋ฉฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ์ ์๋ฒ๋จ์์ PDF๋ฅผ ๋ง๋๋ ๊ฑธ ๊ถ์ฅํจ
์๋ ๋งํฌ์ ์์กด์ฑ(gradle), serviceImpl ๋ถ๋ถ์ convertHtmlToPdf() ๋ถ๋ถ ์ฐธ์กฐ
[springBoot] ๊ธ์ฌ๋ช ์ธ์ ๋ฉ์ผ๋ฐ์ก ๊ธฐ๋ฅ ๊ฐ๋ฐ 2.(feat. back-end)
๋ชฉ์ฐจ ๊ธ์ฌ๋ช ์ธ์ ๋ฉ์ผ๋ฐ์ก ๊ธฐ๋ฅ ํ๋ก ํธ๋จ [Vue.js] ๊ธ์ฌ๋ช ์ธ์ ๋ฉ์ผ๋ฐ์ก ๊ธฐ๋ฅ ๊ฐ๋ฐ 1.(feat. frontend) ๋ชฉ์ฐจ ๊ธ์ฌ๋ช ์ธ์ ๋ฐ์ก ํ๋ฉด(html) ํ๋ก์ ํธ ์์ค์์ ํธ์งํด์ ๊ฐ์ ธ์จ ๊ฒ์ด๋ฏ๋ก class, ๋์์ธ ๋ฑ์
yaga.tistory.com
๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค.
ํ๋ฆฐ ์ ์์ ๊ฒฝ์ฐ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.
'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[development] ํฐ์คํ ๋ฆฌ ์ผ๊ด ๋๊ธ ์์ฑ ๊ฐ๋ฐ(feat. open API) (50) | 2023.09.13 |
---|---|
[base64] ์ด๋ฏธ์ง๋ฅผ base64๋ก ์ธ์ฝ๋ฉ (64) | 2023.09.09 |
[Git] Git Branching Strategy(feat. ๋ธ๋์น ์ ๋ต) (66) | 2023.08.24 |
[springBoot] ์์ ํ์ผ ์ฝ๊ธฐ(feat. ajax) (62) | 2023.08.23 |
[Java] ๊ฐ๋ณ์ธ์ ์ฌ์ฉ(feat. String ... str) (37) | 2023.08.22 |
๋๊ธ