Commit ade72afa authored by Babin Egor's avatar Babin Egor

add PDF makes

parent 20faeda2
...@@ -56,6 +56,7 @@ ready(function(){ ...@@ -56,6 +56,7 @@ ready(function(){
parent.dispatchEvent(new CustomEvent('fileSetChanged',{ parent.dispatchEvent(new CustomEvent('fileSetChanged',{
detail: {} detail: {}
})) }))
} }
// Событие change, выбор файла // Событие change, выбор файла
......
// const ready = require('./utils/documentReady.js');
// ready(function(){
// console.log('DOM героически построен!');
// });
// const $ = require('jquery');
// $( document ).ready(function() {});
import jsPDF from 'jspdf'; import jsPDF from 'jspdf';
import "@babel/polyfill"; import "@babel/polyfill";
import $ from 'jquery';
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
let orderPdf = document.querySelector('#orderPdf'); let orderPdf = document.querySelector('#orderPdf');
let tableResult = document.querySelector('#table-content'); let tableResult = $('#table-content');
orderPdf.addEventListener('click', function(e) orderPdf.addEventListener('click', function(e)
{ {
e.preventDefault();
html2canvas(tableResult).then(function(canvas) {
let pdfData = canvas.toDataURL('image/png');
console.log(pdfData);
document.body.append(canvas);
});
/* document.body.scrollTop = 0; // For Safari
let byteChars = atob(pdfData); document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
let bytes = [];
var HTML_Width = $(".canvas_div_pdf").width();
var HTML_Height = $(".canvas_div_pdf").height();
var top_left_margin = 15;
var PDF_Width = HTML_Width+(top_left_margin*2);
var PDF_Height = (PDF_Width*1.5)+(top_left_margin*2);
var canvas_image_width = HTML_Width;
var canvas_image_height = HTML_Height;
var totalPDFPages = Math.ceil(HTML_Height/PDF_Height)-1;
for (let i = 0; i < byteChars.length; i++) html2canvas($(".canvas_div_pdf")[0],{allowTaint:true}).then(function(canvas){
bytes[i] = byteChars.charCodeAt(i);
let blob = new Blob([new Uint8Array(bytes)], {type: 'application/pdf'}); canvas.getContext('2d');
// создаём object URL из Blob
let downloadUrl = URL.createObjectURL(blob);
console.log('File Size:', Math.round(byteChars.length / 1024), 'KB');
console.log(byteChars);
if(window.navigator && window.navigator.msSaveOrOpenBlob) var imgData = canvas.toDataURL("image/jpeg", 1);
window.navigator.msSaveOrOpenBlob(blob);
else var img = document.createElement('img');
{ img.src = imgData;
let newWin = window.open(downloadUrl, '_blank', 'width=500,height=300,menubar=yes,scrollbars=yes,status=yes,resizable=yes');
newWin.focus(); var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);
newWin.print(); //чтобы эта строка сработала страница должна быть в сети, т.е. НЕ локально.
URL.revokeObjectURL(downloadUrl); pdf.addImage(imgData, 'JPG', top_left_margin, top_left_margin, canvas_image_width, canvas_image_height);
// несколько страниц
for (var i = 1; i <= totalPDFPages; i++) {
pdf.addPage(PDF_Width, PDF_Height);
pdf.addImage(imgData, 'JPG', top_left_margin, -(PDF_Height*i)+(top_left_margin*4),canvas_image_width,canvas_image_height);
} }
*/ pdf.save("HTML-Document.pdf");
});
}); });
...@@ -12,8 +12,9 @@ block append head ...@@ -12,8 +12,9 @@ block append head
block page block page
//- +breadcrumbs(breadcrumb_chain) //- +breadcrumbs(breadcrumb_chain)
.container .container
.canvas_div_pdf
h1.title!= title h1.title!= title
.block_yellow-b(id='table-content') .block_yellow-b()
+table-responsive() +table-responsive()
thead thead
tr tr
...@@ -25,7 +26,6 @@ block page ...@@ -25,7 +26,6 @@ block page
th(data-col-shown) Стоимость утилизации, руб. th(data-col-shown) Стоимость утилизации, руб.
th(data-col-shown) Стоимость транспортировки, руб. th(data-col-shown) Стоимость транспортировки, руб.
th(data-col-shown) Общая стоимость, руб. th(data-col-shown) Общая стоимость, руб.
th(data-col-shown)
tbody tbody
tr tr
...@@ -43,7 +43,6 @@ block page ...@@ -43,7 +43,6 @@ block page
td 5 000 td 5 000
td 15 000 td 15 000
td.onbg 20 000 td.onbg 20 000
td #[+remove('')]
tr tr
td td
...@@ -57,7 +56,6 @@ block page ...@@ -57,7 +56,6 @@ block page
td 5 000 td 5 000
td td
td.onbg 15 000 td.onbg 15 000
td #[+remove('')]
tr tr
td td
...@@ -74,7 +72,6 @@ block page ...@@ -74,7 +72,6 @@ block page
td 35 000 td 35 000
td 10 000 td 10 000
td.onbg 40 000 td.onbg 40 000
td #[+remove('')]
tr tr
td td
...@@ -91,7 +88,6 @@ block page ...@@ -91,7 +88,6 @@ block page
td 35 000 td 35 000
td 10 000 td 10 000
td.onbg 40 000 td.onbg 40 000
td #[+remove('')]
tr tr
td td
...@@ -108,7 +104,6 @@ block page ...@@ -108,7 +104,6 @@ block page
td 35 000 td 35 000
td 10 000 td 10 000
td.onbg 40 000 td.onbg 40 000
td #[+remove('')]
.block_yellow-b.text-right .block_yellow-b.text-right
.h3 Общая стоимость заявки: #[strong.text-nowrap(style='font-size:2.5rem;') 80 000 руб.] .h3 Общая стоимость заявки: #[strong.text-nowrap(style='font-size:2.5rem;') 80 000 руб.]
...@@ -122,7 +117,7 @@ block page ...@@ -122,7 +117,7 @@ block page
.col-md.text-left.mb-20.mb-md-0 .col-md.text-left.mb-20.mb-md-0
+btn('Вернуться к рассчёту','secondary, sm-full')(href='/') +btn('Вернуться к рассчёту','secondary, sm-full')(href='/')
.col-md.flex-grow-0.mb-20.mb-md-0 .col-md.flex-grow-0.mb-20.mb-md-0
+btn(class='secondary sm-full',id='orderPdf') Сформировать КП +btn('Сформировать КП','btn btn_secondary btn_sm-full')(id='orderPdf')
.col.flex-grow-0.d-none.d-lg-block .col.flex-grow-0.d-none.d-lg-block
+btn('','secondary')(href='/') +btn('','secondary')(href='/')
+icon('i-print', 'flex,print') +icon('i-print', 'flex,print')
...@@ -131,4 +126,3 @@ block page ...@@ -131,4 +126,3 @@ block page
.row.justify-content-center .row.justify-content-center
.col-lg-8 .col-lg-8
p Если у Вас остались вопросы, Вы можете связаться с менеджером по телефону 8 (800) 100-66-06 или с помощью #[a(href='', data-toggle='modal', data-target='#modal-callback') формы обратной связи] p Если у Вас остались вопросы, Вы можете связаться с менеджером по телефону 8 (800) 100-66-06 или с помощью #[a(href='', data-toggle='modal', data-target='#modal-callback') формы обратной связи]
img(src="", id="canvasImg")
...@@ -249,19 +249,22 @@ block page ...@@ -249,19 +249,22 @@ block page
.row .row
.col .col
h3 Документы h3 Документы !!!
//- Прикрепить документы //- Прикрепить документы
+field-file( +field-file(
{ {
id: 'docs1', id: 'docs1-96',
name: 'docs1', name: 'files',
multiple: true
}, },
'Прикрепить еще документ', 'Прикрепить еще документ',
'' ''
) )
+info-block() +info-block()
|Вы можете загрузить файлы в формате TXT, DOC, XML, PDF, JPG, PNG, BMP, GIF размером не более 5 Мб |Вы можете загрузить файлы в формате TXT, DOC, XML, PDF, JPG, PNG, BMP, GIF размером не более 5 Мб
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment