HTML 내용을 PDF 로 저장하려면 출력(인쇄)버튼을 클릭해서 출력옵션에 보이는 PDF로 저장 기능을 이용하면 됩니다만. 여기서는, 그 기능을 사용하지 않고, HTML 내에서 javascript/jQuery를 이용하여 바로 PDF로 저장하는 방법을 설명드리겠습니다
아래와 같이 jquery, canvas, jspdf 관련 파일을 CDN 으로 불러온 후에 jsPDF 객체를 생성하면 가능합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
<div id="content">
<h1 style="color:red">안녕하세요</h1>
<p>PDF 문서의 내용입니다</p>
</div>
<script language = "javascript">
let doc = new jsPDF('p','pt','a4');
doc.addHTML(document.body,function() {
doc.save('html.pdf');
});
</script>
|
cs |
jsPDF 객체를 생성할때 옵션으로 문서의 가로세로 설정이 가능하고, 문서의 크기도 인치 단위로 설정할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
<div id="content">
<h1 style="color:red">안녕하세요</h1>
<p>PDF 문서의 내용입니다</p>
</div>
<script language = "javascript">
const doc = new jsPDF({
//orientation: "landscape",
orientation: "portrait",
//format: "a4"
format: [4, 2]
});
doc.addHTML(document.body,function() {
doc.save('html.pdf');
});
</script>
|
cs |
orientation 옵션을 landscape / portrait 로 설정하여 가로 세로를 조정할 수가 있고, format 옵셥을 이용하여 가로세로 길이를 설정할 수 있습니다. a4 로 설정하면 a4사이즈가 설정되며 [4,2] 와 같이 설정하면 세로 4인치, 가로 2인치의 pdf 문서가 생성됩니다.
위 코드를 실행시키면 바로 pdf 문서를 다운로드 하라는 창이 뜨게 됩니다^^
아래 사이트를 참조했습니다
댓글 영역