Merge pull request #204 from EETagent/setrne_pdf

(frontend) Šetrné PDF
This commit is contained in:
Sebastian Pravda 2023-02-16 11:11:22 +01:00 committed by GitHub
commit b419c7e9dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 1590 additions and 9 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 329 KiB

View file

Before

Width:  |  Height:  |  Size: 320 KiB

After

Width:  |  Height:  |  Size: 320 KiB

View file

@ -12,7 +12,7 @@
import { SvelteToast, toast } from '@zerodevx/svelte-toast'; import { SvelteToast, toast } from '@zerodevx/svelte-toast';
import jsPDF from 'jspdf'; import jsPDF from 'jspdf';
import 'svg2pdf.js'; import 'svg2pdf.js';
import { font } from "$lib/assets/list/font" import { font } from '$lib/assets/list/font';
let isOpened = true; let isOpened = true;
@ -87,10 +87,15 @@
} }
}; };
const generatePdf = async () => { import registerPdfColored from '$lib/assets/pdf/login_document_colored.svg?raw';
const template = (await import('$lib/assets/pdf/drawing.svg?raw')).default; import registerPdfBlackWhite from '$lib/assets/pdf/login_document_black_white.svg?raw';
const svg = template; // import registerPdfWhite from '$lib/assets/pdf/register_white.svg?raw';
const generatePdf = async (type: 'colored' | 'blackWhite') => {
// TODO: Add white version
const svg = type === 'colored' ? registerPdfColored : registerPdfBlackWhite;
const {r, g, b} = type === 'colored' ? {r: 255, g: 255, b: 255} : {r: 0, g: 0, b: 0};
const element = document.getElementById('svg-element')!; const element = document.getElementById('svg-element')!;
element.innerHTML = svg; element.innerHTML = svg;
@ -102,14 +107,18 @@
doc.setFont('JetBrainsMono-Regular'); doc.setFont('JetBrainsMono-Regular');
doc.setFontSize(28); doc.setFontSize(28);
doc.setTextColor(255, 255, 255); doc.setTextColor(r, g, b);
await doc.svg(element); await doc.svg(element);
doc.text(login.applicationId.toString(), 120, 110); doc.text(login.applicationId.toString(), 120, 110);
doc.text(login.password, 54, 129); doc.text(login.password, 54, 129);
doc.text(login.personalIdNumber, 90, 147.62); doc.text(login.personalIdNumber, 90, 147.62);
if (login.applications.length > 1) { if (login.applications.length > 1) {
doc.text('Slinkováno s přihláškou ' + login.applications.filter((a) => a != applicationId)[0], 13.6, 166.24); doc.text(
'Slinkováno s přihláškou ' + login.applications.filter((a) => a != applicationId)[0],
13.6,
166.24
);
} }
doc.save('PRIHLASOVACI_UDAJE_' + login.applicationId.toString()); doc.save('PRIHLASOVACI_UDAJE_' + login.applicationId.toString());
@ -138,9 +147,14 @@
Slinkovaný s {login.applications.filter((a) => a != applicationId)} Slinkovaný s {login.applications.filter((a) => a != applicationId)}
</h1> </h1>
{/if} {/if}
<div class="mt-2"> <div class="mt-2 flex">
<button class="rounded-lg bg-red-800 p-2 text-white" on:click={generatePdf} <button
>Stáhnout PDF</button class="rounded-lg bg-red-800 p-2 text-white"
on:click={async () => await generatePdf('colored')}>Stáhnout PDF</button
>
<button
class="ml-2 rounded-lg border border-gray-300 bg-gray-100 p-2 text-black"
on:click={async () => await generatePdf('blackWhite')}>Stáhnout šetrné PDF 🌱</button
> >
</div> </div>
{:else} {:else}