Offer missing document fonts before conversion
Los mantenedores suelen responder en 1 día
@Perricheno ya está trabajando en esto.
Desde el 22/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Problem
Office and HWPX documents can name fonts that are not installed on the computer. Filee currently substitutes them silently. The result may stay readable, but different font metrics can change wrapping, pagination and table layout. #409 prevents completely blank text when rhwp's own fallback fonts are absent, but it intentionally does not solve exact document typography.
Proposed flow
When a text-rendering step discovers missing families:
- Keep the conversion in the bottom-right progress card and pause before the final render.
- Show the missing families and the replacements Filee would use, for example:
Times New Roman → Liberation Serif. - Offer Get fonts, Continue with replacements, and Cancel.
- After fonts are installed, release the font cache, check the families again, and resume the same job. If some are still absent, keep the remaining list visible.
For freely licensed families, Filee can download a pinned archive with a checksum and install it per user. For proprietary families, it should not redistribute font files silently: Get fonts can open the official source or let the user choose font files they already obtained.
Non-interactive conversions
- CLI: print the missing families and substitutions, then continue by default; a future
--require-fontsoption can fail instead. - Watch folders: use a saved continue/fail policy so an unattended job never waits forever.
Implementation notes
RhwpFonts.Plan already knows which families are absent and which replacements it chose. The missing piece is an interactive question on a ConversionJob/FileResult, rendered by ToastWindow, whose answer the running conversion can await. LibreOffice routes need an OOXML/HWPX preflight because substitution happens inside LibreOffice.
Acceptance cases
- No prompt when every referenced family is installed.
- A DOCX referencing absent Times New Roman/Calibri lists both before rendering.
- Continuing produces the current fallback result.
- Installing an available font refreshes discovery and resumes without restarting Filee.
- Cancelling removes partial outputs.
- CLI and watch-folder conversions never block on a GUI prompt.
- Lenguaje dominante
- C#
- Estrellas
- 3.6k
- Forks
- 192
- Merge medio
- 7 h 3 min
- PR fusionados (30 d)
- 244
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de KnifeLemon/Filee
-
[Bug] Interactive toggle inside Theme preview card is completely unresponsive in SettingsPosiblemente ocupada @Saad-elnagar la tomó hace 3 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
KnifeLemon/Filee#363 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Format]: .fcpxmlAbiertoformats
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
KnifeLemon/Filee#588 ·
Los mantenedores suelen responder en 1 día
-
[Format]: .kgmaAbiertoformats
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
KnifeLemon/Filee#587 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
KnifeLemon/Filee#586 ·
Los mantenedores suelen responder en 1 día
-
[Feature]: Video trimmerAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
KnifeLemon/Filee#585 ·
Los mantenedores suelen responder en 1 día
Todos los issues de KnifeLemon/Filee
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
unoplatform/uno.check#591 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
weaviate/csharp-client#378 ·
-
agentic-workflows automated testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Azure-Samples/Legacy-Modernization-Agents#194 ·
Los mantenedores suelen responder en 1 día
-
area-encryption area-security p1-recommended technical-debt
Dificultad 2/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
bug flaky small
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
hexide-io/HexIDE#1906 · 1 comentario ·
Los mantenedores suelen responder en 1 día