diff options
Diffstat (limited to 'src/main.js')
-rw-r--r-- | src/main.js | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..53323f3 --- /dev/null +++ b/src/main.js @@ -0,0 +1,229 @@ +import * as fs from "fs" +import * as html_to_pdf from "html-pdf-node" +import * as stu from './stunden.js' + +var student = "David Penkowoj"; +var semester = "Sommersemester 2024"; +var date = new Date(); +date = date.toLocaleDateString("de-DE", { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', +}); + +let options = { + format: 'A4', + landscape: true, + margin: { + top: "0.5cm", + right: "1cm", + bottom: "1cm", + left: "2cm", + }, +}; + +var table = ` + <tr> + <th rowspan="4"> 08:00 </th> + <td></td> + <td rowspan="2"></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td></td> + <td rowspan="6"><div><span>TGI 1 / V</span><span>AM 1</span></div></td> + <td></td> + <td></td> + </tr> + <tr> + <td></td> + <td rowspan="6"><div><span>GET 2 / V</span><span>H 1</span></div></td> + <td rowspan="6"><div><span>GET 2 / V</span><span>Z 1/2</span></div></td> + <td rowspan="6"><div><span>Pho / V</span><span>T 1</span></div></td> + </tr> + <tr> + <td></td> + </tr> + + <tr> + <th rowspan="4"> 09:00 </th> + <td></td> + </tr> + <tr> + <td></td> + </tr> + <tr> + <td></td> + </tr> + <tr> + <td></td> + <td></td> + </tr> + + <tr> + <th rowspan="4"> 10:00 </th> + <td></td> + <td></td> + <td></td> + <td rowspan="20" class="block"></td> + <td rowspan="6"><div><span>FuQ / V</span><span>AM 4</span></div></td> + </tr> + <tr> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td></td> + <td></td> + <td></td> + </tr> + + <tr> + <th rowspan="4"> 11:00 </th> + <td></td> + <td rowspan="4"><div><span>FuQ / Ü</span><span>SI 4 (Minsky)</span></div></td> + <td></td> + </tr> + <tr class="mensa1"> + <td></td> + <td></td> + </tr> + <tr class="mensa1"> + <td></td> + <td></td> + <td rowspan="6"><div><span>GET / Ü</span><span>AM S4</span></div></td> + </tr> + <tr class="mensa1"> + <td></td> + <td></td> + </tr> + + <tr class="mensa1"> + <th rowspan="4"> 12:00 </th> + <td rowspan="4"><div><span>GET 2 / Ü</span><span>AM S4</span></div></td> + <td></td> + <td rowspan="4"><div><span>Pho / Ü</span><span>AM 1</span></div></td> + </tr> + <tr class="mensa1"> + <td></td> + </tr> + <tr class="mensa1"> + <td rowspan="6"><div><span>Ana 2 / V</span><span>AM 1</span></div></td> + </tr> + <tr class="mensa1"> + </tr> + + <tr class="mensa1"> + <th rowspan="4"> 13:00 </th> + <td rowspan="20" class="block"></td> + <td></td> + </tr> + <tr class="mensa1"> + <td></td> + </tr> + <tr class="mensa1"> + <td></td> + </tr> + <tr class="mensa1"> + <td></td> + </tr> +`; + +table = stu.main(); + +var html = ` +<style> + * { + font-weight: 300; + font-family: "Abel", sans-serif; + -webkit-print-color-adjust: exact; + + --entries-b: #ccc; + --entries-f: #111; + --headers-b: #333; + --headers-f: #fff; + + --block: #ccc; + } + + table { + width: 100%; + } + + table td, table tr { + background: var(--headers-f); + height: 4px; + } + + table th, table td:not(:empty) { + background-color: var(--entries-b); + color: var(--entries-f); + padding: 0.5em 1em; + position: relative + } + + table th { + background-color: var(--headers-b); + color: var(--headers-f); + } + + table th.tag { + width: 20%; + } + + table td { + font-size: 12px; + } + + table td.block { + background-image: repeating-linear-gradient(314deg, var(--block), var(--block) 10px, transparent 10px, transparent 20px); + background-size: 99.9999999% 99.9999999%; + border: 2px solid var(--block); + } + + div { + position: absolute; + display: flex; + + top: 0.4em; + left: 0.4em; + width: calc(100% - 0.8em); + justify-content: space-between; + } +</style> +<p>Persönlicher Stundenplan von ${student} für das ${semester}. Letzter Stand: ${date}.</p> +<table> + <tr> + <th> Uhrzeit </th> + <th class="tag"> Montag </th> + <th class="tag"> Dienstag </th> + <th class="tag"> Mittwoch </th> + <th class="tag"> Donnerstag </th> + <th class="tag"> Freitag </th> + </tr> + ${table} +</table> +<br> +<u> Hinweise: </u> +<ul> + <li>Mensabetrieb: 11:15 - 14:15 Uhr + 00:15 min</li> + <li>GET 2 / V am 23.05. & 04.07. im V1</li> + <li>GET 2 / Ü am 24.05. im T S2</li> + <li>FuQ / V am 24.05. im T S1</li> +</ul> +`; + +fs.writeFileSync("test.html", html) + +html_to_pdf.generatePdf({content: html}, options).then(pdfBuffer => { + fs.writeFileSync('test.pdf', pdfBuffer); +}); |