CV-Import: Bewerbungsfoto uebernehmen
This commit is contained in:
@@ -81,6 +81,41 @@ Kontakt (`icon_contacts.cv_file`) und lässt sich aus dessen Karte herunterladen
|
||||
der Download läuft über `fetch` mit Bearer-Kopf, ein normaler Link schickt ihn
|
||||
nicht mit.
|
||||
|
||||
### Das Bewerbungsfoto
|
||||
|
||||
Trägt der Lebenslauf ein Portrait, wird es beim Auslesen mit herausgeholt und im
|
||||
Screening-Formular oben angezeigt – mit Haken, standardmäßig gesetzt. Beim
|
||||
Übernehmen landet es als Foto am Kontakt.
|
||||
|
||||
Gefunden wird es **ohne zusätzliches Paket** (`server/src/cvPhoto.js`):
|
||||
|
||||
| Format | Weg |
|
||||
| --- | --- |
|
||||
| DOCX | ist ein ZIP – die Dateien unter `word/media/` werden mit dem eingebauten `zlib` herausgelöst |
|
||||
| PDF | mit `/DCTDecode` abgelegte JPEGs stehen unverändert in der Datei und lassen sich an ihren eigenen Markierungen (FFD8 … FFD9) ausschneiden |
|
||||
|
||||
Bilder in anderen PDF-Kodierungen (FlateDecode, also rohe Bitmaps) bleiben außen
|
||||
vor: sie müssten neu kodiert werden, und dafür bräuchte es eine Bildbibliothek
|
||||
auf dem Server.
|
||||
|
||||
**Welches Bild das Portrait ist**, entscheidet die Form – die Reihenfolge in der
|
||||
Datei hilft nicht, in DOCX steht das Firmenlogo oft vor dem Foto:
|
||||
|
||||
* kleiner als 100 × 100 px → Symbol, Trennlinie, Aufzählungszeichen
|
||||
* Seitenverhältnis außerhalb 0,4–1,6 → Kopfzeile, Banner, Diagramm
|
||||
* vom Rest gewinnt **Hochformat** vor Querformat, dann das größere
|
||||
|
||||
Verkleinert wird im Browser, über denselben Weg wie jedes andere Foto
|
||||
(`src/lib/imageCompress.ts`): mittiger Ausschnitt, 400 px im Quadrat, WebP – und
|
||||
eine harte Obergrenze von **512 kB**, unter die notfalls die Kantenlänge
|
||||
schrittweise fällt. In der Praxis liegt ein Ergebnis bei 20–60 kB; die Grenze
|
||||
ist die Zusicherung, nicht die Regel.
|
||||
|
||||
Das gefundene Bild liegt bis zur Übernahme in `icon_cv_imports.photo` und wird
|
||||
danach dort geleert – sonst stünde dasselbe Foto zweimal in der Datenbank. In
|
||||
der Liste der Importe steht es **nicht**: sie trägt nur `has_photo`, das Bild
|
||||
holt das Formular einzeln (`GET /api/cvs/:id/photo`).
|
||||
|
||||
## Schreibhilfe für Ausschreibungen
|
||||
|
||||
Das Feld *Ausschreibungstext* (`icon_tenders.notes`) ist ein WYSIWYG-Editor mit
|
||||
|
||||
Reference in New Issue
Block a user