{#each chunk(schueler, 25) as slice} <div class="page grid" orientation="portrait" size="A4"> <div class="main"> <b>{slice[0].Klasse}</b> Stand: {datum(new Date())} <div class="grid" style="font-size: 0.8rem"> {#each slice as s} <div> {#await foto(s) then f} <img src="data:image/jpg;base64,{f}" alt="Foto" style="width: 120px"> {:catch} Kein Foto {/await} <br> {s.Name}, {s.Vorname} </div> {/each} </div> </div> </div> {/each} <script> import { datum, chunk } from './helfer' export let schueler, knexConfig const mysql = R('mysql') var connection = mysql.createConnection(knexConfig.connection) connection.connect() async function foto (s) { return new Promise((resolve, reject) => { connection.query('SELECT Foto FROM `schuelerfotos` WHERE `Schueler_ID` = ?', [s.ID], (err, rows) => { if (err || rows.length===0) return reject(err); resolve(Buffer.from(rows[0].Foto, 'binary').toString('base64')); }); }); } </script> <style> @import 'css/main.css'; .grid { display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 10px; } </style>