pdf saver

This commit is contained in:
Ville Rantanen
2023-06-05 18:33:54 +03:00
parent b6d92b43c2
commit c825ba47da

View File

@@ -8,7 +8,6 @@
BODY { BODY {
font-family: sans-serif; font-family: sans-serif;
background-color: lightcyan; background-color: lightcyan;
width: 100%;
} }
TEXTAREA { font-family: sans-serif; width: 100%; TEXTAREA { font-family: sans-serif; width: 100%;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
@@ -51,9 +50,7 @@
display: none; display: none;
} }
#barcodes { #barcodes {
margin-top: 1em; margin: 1em;
margin-bottom: 1em;
width: 100%;
opacity: 1; opacity: 1;
transition: opacity 0.2s; transition: opacity 0.2s;
} }
@@ -66,7 +63,6 @@
#lasku { #lasku {
border: 1px solid; border: 1px solid;
border-collapse: collapse; border-collapse: collapse;
width: 100%;
} }
#lasku th, #lasku td { #lasku th, #lasku td {
border: 1px solid; border: 1px solid;
@@ -92,6 +88,15 @@
.print_help { .print_help {
display: none; display: none;
} }
.kayttaja_pdf {
display: none;
}
.print_help_pdf {
display: block;
overflow: visible;
white-space: pre;
white-space: pre-wrap;
}
@media print { @media print {
.no-print, .no-print * { .no-print, .no-print * {
display: none !important; display: none !important;
@@ -113,8 +118,11 @@
} }
</STYLE> </STYLE>
<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.5/dist/barcodes/JsBarcode.code128.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.5/dist/barcodes/JsBarcode.code128.min.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> <script>
let state = { let state = {
@@ -324,6 +332,34 @@ function clear_lasku() {
} }
} }
function lasku_pdf() {
var element = document.getElementById('barcodes');
const editables = document.getElementsByClassName("kayttaja");
const printables = document.getElementsByClassName("print_help");
for (let i = 0; i < editables.length; i++) {
editables[i].classList.add("kayttaja_pdf");
}
for (let i = 0; i < printables.length; i++) {
printables[i].classList.add("print_help_pdf");
}
var opt = {
margin: 10,
filename: `lasku-${state['paiva']}-${state['viite']}.pdf`,
html2canvas: { scale: 2 },
jsPDF: { unit: 'mm', format: 'A4', orientation: 'portrait' }
};
html2pdf().set(opt).from(element).save().then(function(results){
for (let i = 0; i < editables.length; i++) {
editables[i].classList.remove("kayttaja_pdf");
}
for (let i = 0; i < printables.length; i++) {
printables[i].classList.remove("print_help_pdf");
}
});
}
function init() { function init() {
const date = new Date(); const date = new Date();
document.getElementById('paiva').value = date.toISOString().substring(0,10); document.getElementById('paiva').value = date.toISOString().substring(0,10);
@@ -393,6 +429,9 @@ function reversed(str) {
</div> </div>
<br> <br>
<div class="no-print"> <div class="no-print">
<input type="submit" onclick="lasku_pdf()" value="Tallenna lasku PDF"/>
<br><br>
<label>Virtuaaliviivakoodi:</label><br> <label>Virtuaaliviivakoodi:</label><br>
<input id="virtuaali" size=54 /><br> <input id="virtuaali" size=54 /><br>
<label>&nbsp;</label><span id="virtuaali_error" class="error" ></span><br> <label>&nbsp;</label><span id="virtuaali_error" class="error" ></span><br>