Imagefooter für Retro-Digitalisate¶
Übersicht¶
Imagefooter werden unter die ausgelieferten Webcachebilder ab einer konfigurierten Größe geklebt und in den PDF-Derivaten eingebaut. Der Usecase ist normalerweise, dass sich die Verantwortlichen bzw. Sponsoren auf den Images verewigen wollen. Ein Beispiel:
Konfiguration und Resourcen¶
Auf der Instanz wird Footersupport aktiviert indem in der server.ini
die Option webcache.footerSizes
auf 504 gesetzt wird. Damit ist auch
gleichzeitig die minimale Webcachestufe konfiguriert, ab welcher Footer
gebaut werden sollen. Für einzelne Domains werden Footer aktiviert indem
dconfig.dfgfooter.on=True
gesetzt wird.
Das Ergebnis der Konfiguration wird auf der Adminseite admin/footer
visualisiert. Dort lässt sich auch der Cache zurücksetzen.
Domainkonfiguration¶
Konfigurationsoptionen von dconfig.dfgfooter
:
writing_size
(integer, default=900)Ab welcher Webcachstufe wird Text in den Footer eingefügt. Bei einem kurzem Text, kann der Wert reduziert werden z.B. auf 500 um für alle Webcachestufen den Text anzuzeigen.
larger_size
(integer, default=1000)Verwende größeres Footertemplate ab dieser Webcachestufe.
font_file
,font_size
,font_small_size
.font_color
,footer_color
Einstellung der Schriftarten mit sinnvollen Defaults (
FreeSerif.ttf
,12
). Siehe dconfigspec.footer_height
,footer_small_height
Höhe des Footertemplates. Die Defaults sind 50px für die große Version und 30px für die Kleine.
embed_purn
(boolean, default=true)Bette Pageurns im Footer ein, falls vorhanden.
fragment_purn
(boolean, default=false)Experimentelle Pageurn-V2.0 Funktionalität. Transformiere urn:nbn:de:gbv:3:1-17-p5-4 nach urn:nbn:de:gbv:3:1-17/fragment/page=5
Weitere Konfigurationsoptionen aus dconfig.connectors
die Text
zwischen den beiden Logos steuern:
institutionFooterName
undinstitutionName
Name der Institution. Wenn
institutionFooterName
leer ist, dann wird ein Fallback aufinstitutionName
ausgeführt
# Beispiel Domainconfig
[dfgfooter]
on = true
font_file = arial.ttf
font_size = 16
font_small_size = 11
embed_purn = false
writing_size = 600
larger_size = 504
[connectors]
institutionFooterName = Landebibliothek
Logos¶
Ein weiterer Teil der Konfiguration besteht aus der Bereitstellung der
Logos, die in den Footer eingebettet werden sollen. Diese werden im
Domainverzeichnis unter "static/graphics/connectors/
abgelegt.
footerLogoSponsor.png
Rechts im Footer. Variable Dimensionen. Normalerweise
.png
. Beispiel:
footerLogoInstitution.png
Links im Footer. Variable Dimensionen. Normalerweise
.png
. Beispiel:
Prozess¶
Imagefooter werden on-demand gebaut. Das heißt, wenn eine Webcachestufe
angefordert wird, dann wird ein gecachtes passendes Footerimage unter
das Webcachebild geklebt und die Kombination in einem für Footer
reserviertes Verzeichnis (parallel zum Webcacheverzeichnis,
webcache/1000
vers. webcache/1000f
) abgespeichert. Weitere Zugriffe
auf das Webcache+Footer-Bild sind somit schnell.
Die Footertemplates werden In-Memory gecached. Zugriff auf den Cache ist
über component("vls.logo_cache").logoCache
möglich. Dort sind
PIL-Images für jede Domain in logoCache._domains
abgelegt. Der Cache
wird beim ersten Zugriff auf Footerimages initialisiert und lässt sich
via logoCache.clear()
zurücksetzen.
Die Footer-API besteht im Grunde genommen nur aus
component("vls.dfgfooter")
und der Funktion
vls.dfgfooter.addFooterByPath(imgfile, otid, odid)
. Der einzige
Konsument von addFooterByPath
ist die Webcache-Komponente. Dort wird
beim Request eines Webcachebildes anhand der Domainkonfiguration
entschieden ob und welcher Footer unter das angeforderte Webcacheimage
gehängt wird.
Hinweis
Beim on-demand Konkatenieren des Footerimages mit dem Webcacheimage ist eine weitere JPEG-Kompression notwendig. Footer verschlechtern also die Imagequalität.
Die Alternative wäre die Footer-Webcachestufe parallel zur Erzeugung des Webcacheimages aus dem Archivimage zu erzeugen. Das würde aber bedeuten, dass man die Webcachedaten dupliziert. Diese Variante war VLS-Verhalten bis V2.0, aus Effizienzgründen haben wir aber auf die on-demand Variante umgestellt.
Jobs¶
Ein weiteres Derivat, welches mit den Footerimages versorgt wird, sind
die PDFs. Dafür muss beim PDFJob
die Option pdfFooterImage=True
gesetzt werden.