mirror of
https://github.com/danbulant/Portfolio
synced 2026-05-24 12:35:31 +00:00
commit
b419c7e9dd
3 changed files with 1590 additions and 9 deletions
1567
frontend/src/lib/assets/pdf/login_document_black_white.svg
Normal file
1567
frontend/src/lib/assets/pdf/login_document_black_white.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 329 KiB |
|
Before Width: | Height: | Size: 320 KiB After Width: | Height: | Size: 320 KiB |
|
|
@ -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}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue