Home
» Come fare
»
Rendere disponibili i font personalizzati in Collabora CODE Docker
Rendere disponibili i font personalizzati in Collabora CODE Docker
Per visualizzare un font personalizzato in Collabora Online CODE in esecuzione in Docker, è necessario mantenere i file del font sull'host e montare la stessa directory sia nella directory dei font di sistema del container che nel suo systemplate del documento. Il systemplate fornisce i file ai processi del documento isolati; il montaggio dei font solo in questa directory /usr/share/fontspuò far apparire una famiglia di font nel menu dei font senza che venga visualizzata nel documento. Questa guida utilizza Docker Compose e il percorso corrente dell'immagine CODE /opt/cool/systemplate; verificare il percorso se si utilizza una riga di immagine diversa.
Conserva i file dei font con licenza insieme in una directory host accessibile a Docker.
Scegli una fonte di font che puoi gestire
Un bind mount di sola lettura è solitamente l'opzione più semplice per un singolo host Docker. Preserva i file dei font quando il container CODE viene ricreato o aggiornato e consente di verificare esattamente quali file il container può leggere. Utilizza solo file di font per i quali hai l'autorizzazione all'installazione e alla ridistribuzione sul server. Non copiare l'intera directory dei font di un sistema desktop a meno che tu non abbia verificato le relative licenze e non necessiti effettivamente di quei file.
Utilizza file di font non compressi in formati supportati dal tuo ambiente, in genere TrueType ( .ttf) o OpenType ( .otf). Includi gli stili necessari ai tuoi documenti, come normale, grassetto, corsivo e grassetto corsivo. Mantieni chiari i nomi delle famiglie e dei file e assicurati che l'utente del contenitore possa leggere ogni directory e file. Un font che contiene un solo stile potrebbe indurre Collabora a sostituirlo con un altro stile quando un documento richiede il grassetto o il corsivo.
Innanzitutto, crea una directory host dedicata e copia al suo interno i file autorizzati:
Sostituisci i nomi dei file di esempio con i tuoi file di font effettivi. L'autorizzazione di lettura è importante perché il processo CODE viene eseguito con un account non privilegiato nelle immagini correnti. Mantieni stabile il percorso della directory; i mount di Compose faranno riferimento ad esso.
Monta i font sia nell'albero dei font host che nel systemplate.
Nel collaboraservizio esistente in docker-compose.yml, aggiungi queste voci di volume. Mantieni l'immagine, le porte, l'elenco dei domini consentiti, le impostazioni SSL, i segreti e la politica di riavvio esistenti; il frammento di codice seguente mostra solo i punti di montaggio dei font.
Aggiungi entrambi i mount di sola lettura nella sezione dei volumi del servizio CODE esistente.
Il primo target rende i font disponibili al normale sistema di rilevamento dei font del container. Il secondo target li inserisce all'interno del template utilizzato per preparare ambienti di documenti isolati. Il manuale dell'SDK di Collabora documenta questo schema di volumi a due posizioni per Docker. Non montare l'intera /usr/share/fontsdirectory o la directory systemplate: ciò potrebbe nascondere i font già forniti dall'immagine.
Il percorso della cartella di sistema dipende dalla versione. I metadati dell'immagine CODE 26.04 corrente identificano /opt/cool/systemplatecome percorso del modello di sistema tale percorso e la documentazione corrente di Collabora utilizza questa posizione. Se si utilizza un'immagine precedente o una build specifica del fornitore, consultare la documentazione o la configurazione di avvio di tale immagine prima di modificare il percorso di destinazione.
Ricrea il contenitore e conferma il rilevamento dei font.
Dopo aver salvato il file Compose e aver posizionato i file dei font sull'host, ricrea il servizio CODE in modo che Docker applichi i bind mount:
Ricrea il servizio, quindi usa fc-list per verificare se Fontconfig rileva la famiglia di caratteri.
Nell'output, cerca il nome della famiglia di caratteri o il percorso del file montato. Per restringere l'elenco, passalo tramite pipe grepcon il nome della famiglia riportato dal carattere stesso, ad esempio:
Se il comando non segnala alcuna corrispondenza, controlla il percorso host, i permessi dei file, l'indentazione del mount e i log del container. Puoi ispezionare i mount effettivi con docker inspectsul container in esecuzione oppure utilizzare docker compose configper individuare errori di indentazione YAML. L'esecuzione docker compose downnon è normalmente necessaria solo per applicare la modifica del volume; è sufficiente ricreare il servizio.
Verifica che il carattere venga visualizzato correttamente all'interno di un documento effettivo.
Dopo aver riaperto un documento, controlla sia il selettore dei caratteri che il testo visualizzato.
Apri un documento di prova tramite la normale integrazione con Nextcloud o WOPI, seleziona un breve campione di testo e scegli il carattere personalizzato dal selettore di font. Digita una nuova riga con quel font, salva, chiudi e riapri il file. Verifica il testo normale e in grassetto e confronta le interruzioni di riga o il layout di pagina con il documento originale. La presenza di un carattere nel menu è solo un controllo di rilevamento; il testo visibile dopo la riapertura è il controllo di rendering effettivo.
Il font appare nel menu ma il testo scompare o torna indietro: verificare che il secondo mount punti alla directory dei font di sistema e che contenga gli stessi file.
Il font non è presente nel menu: verificare che i file siano validi e leggibili, quindi esaminare fc-listl'output e i log di avvio del container.
Il font funziona fino all'aggiornamento dell'immagine: verifica che entrambi i punti di montaggio siano presenti in Compose e che la directory host non si trovi all'interno di un percorso temporaneo del container.
Vengono visualizzati solo alcuni caratteri: il font selezionato potrebbe non contenere tali glifi. Aggiungi un font con la copertura di caratteri necessaria oppure utilizza un font di riserva appropriato.
Il bind mount mantiene i font indipendenti dall'immagine CODE, ma non garantisce un layout identico su ogni client o in ogni documento. La sostituzione dei font, i glifi mancanti, le diverse versioni dei font e la formattazione specifica del documento possono comunque modificare l'a capo automatico. Per ulteriori dettagli sulla configurazione, consultare la documentazione di installazione dei font di Collabora , la guida all'immagine Docker di CODE e il manuale dell'SDK di Collabora Online . L'esempio Docker del manuale e la documentazione sull'immagine corrente dovrebbero essere ricontrollati ogni volta che si cambia versione di CODE.