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);
});
/*
let byteChars = atob(pdfData);
let bytes = [];
for (let i = 0; i < byteChars.length; i++) document.body.scrollTop = 0; // For Safari
bytes[i] = byteChars.charCodeAt(i); document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
let blob = new Blob([new Uint8Array(bytes)], {type: 'application/pdf'}); var HTML_Width = $(".canvas_div_pdf").width();
// создаём object URL из Blob var HTML_Height = $(".canvas_div_pdf").height();
let downloadUrl = URL.createObjectURL(blob); var top_left_margin = 15;
var PDF_Width = HTML_Width+(top_left_margin*2);
console.log('File Size:', Math.round(byteChars.length / 1024), 'KB'); var PDF_Height = (PDF_Width*1.5)+(top_left_margin*2);
console.log(byteChars); var canvas_image_width = HTML_Width;
var canvas_image_height = HTML_Height;
if(window.navigator && window.navigator.msSaveOrOpenBlob)
window.navigator.msSaveOrOpenBlob(blob); var totalPDFPages = Math.ceil(HTML_Height/PDF_Height)-1;
else
{ html2canvas($(".canvas_div_pdf")[0],{allowTaint:true}).then(function(canvas){
let newWin = window.open(downloadUrl, '_blank', 'width=500,height=300,menubar=yes,scrollbars=yes,status=yes,resizable=yes');
newWin.focus(); canvas.getContext('2d');
newWin.print(); //чтобы эта строка сработала страница должна быть в сети, т.е. НЕ локально.
URL.revokeObjectURL(downloadUrl);
var imgData = canvas.toDataURL("image/jpeg", 1);
var img = document.createElement('img');
img.src = imgData;
var pdf = new jsPDF('p', 'pt', [PDF_Width, PDF_Height]);
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,103 +12,98 @@ block append head ...@@ -12,103 +12,98 @@ block append head
block page block page
//- +breadcrumbs(breadcrumb_chain) //- +breadcrumbs(breadcrumb_chain)
.container .container
h1.title!= title .canvas_div_pdf
.block_yellow-b(id='table-content') h1.title!= title
+table-responsive() .block_yellow-b()
thead +table-responsive()
tr thead
th(data-col-shown) Группа отходов tr
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) Адрес объекта 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) Стоимость транспортировки, руб.
th(data-col-shown) th(data-col-shown) Общая стоимость, руб.
tbody tbody
tr tr
td td
.d-flex.align-items-center .d-flex.align-items-center
| #[+iconsvg('industrial-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})] | #[+iconsvg('industrial-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})]
span Отходы кислот и щелочей span Отходы кислот и щелочей
td 2 td 2
td.text-left td.text-left
| 31792625203 | 31792625203
br br
| отходы солей органических кислот и их смесей при технических испытаниях и измерениях | отходы солей органических кислот и их смесей при технических испытаниях и измерениях
td 2,3 т td 2,3 т
td Московская обл., г. Химки, ул. Мануфактурная, стр. 16 td Московская обл., г. Химки, ул. Мануфактурная, стр. 16
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
.d-flex.align-items-center .d-flex.align-items-center
| #[+iconsvg('fluid-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})] | #[+iconsvg('fluid-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})]
span Отходы кислот и щелочей span Отходы кислот и щелочей
td 2 td 2
td td
td 2 т td 2 т
td Московская обл., г. Химки, ул. Мануфактурная, стр. 16 td Московская обл., г. Химки, ул. Мануфактурная, стр. 16
td 5 000 td 5 000
td td
td.onbg 15 000 td.onbg 15 000
td #[+remove('')]
tr tr
td td
.d-flex.align-items-center .d-flex.align-items-center
| #[+iconsvg('medical-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})] | #[+iconsvg('medical-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})]
span Отходы кислот и щелочей span Отходы кислот и щелочей
td 2 td 2
td.text-left td.text-left
| 31792625203 | 31792625203
br br
| отходы солей органических кислот и их смесей при технических испытаниях и измерениях | отходы солей органических кислот и их смесей при технических испытаниях и измерениях
td 99 т td 99 т
td Московская обл., г. Химки, ул. Мануфактурная, стр. 16 td Московская обл., г. Химки, ул. Мануфактурная, стр. 16
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
.d-flex.align-items-center .d-flex.align-items-center
| #[+iconsvg('communal-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})] | #[+iconsvg('communal-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})]
span Отходы кислот и щелочей span Отходы кислот и щелочей
td 2 td 2
td.text-left td.text-left
| 31792625203 | 31792625203
br br
| отходы солей органических кислот и их смесей при технических испытаниях и измерениях | отходы солей органических кислот и их смесей при технических испытаниях и измерениях
td 99 т td 99 т
td Московская обл., г. Химки, ул. Мануфактурная, стр. 16 td Московская обл., г. Химки, ул. Мануфактурная, стр. 16
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
.d-flex.align-items-center .d-flex.align-items-center
| #[+iconsvg('lamps-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})] | #[+iconsvg('lamps-sm', 'pr10', {'width':25,'height':25,'fill':'#4D4D4D'})]
span Отходы кислот и щелочей span Отходы кислот и щелочей
td 2 td 2
td.text-left td.text-left
| 31792625203 | 31792625203
br br
| отходы солей органических кислот и их смесей при технических испытаниях и измерениях | отходы солей органических кислот и их смесей при технических испытаниях и измерениях
td 99 т td 99 т
td Московская обл., г. Химки, ул. Мануфактурная, стр. 16 td Московская обл., г. Химки, ул. Мануфактурная, стр. 16
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 Мб
......
...@@ -74,4 +74,4 @@ ...@@ -74,4 +74,4 @@
.print-hidden { .print-hidden {
display: none; display: none;
} }
} }
\ No newline at end of file
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