LinuxParty
Firmas un PDF con tu certificado digital desde Okular, lo abres en Linux y todo parece correcto. Sin embargo, algunos destinatarios ven la firma con letras superpuestas, caracteres extraños y textos ilegibles.
Una posible causa es una incompatibilidad con la fuente utilizada para generar la apariencia de la firma. Vamos a explicar cómo investigar el problema y probar una sustitución de Helvetica por Liberation Sans, sin permisos de administrador y de forma reversible.
Antes de cambiar nada, comprobaremos si realmente necesitamos hacerlo.
¿Qué sucede exactamente?
En el caso investigado, el documento firmado se mostraba correctamente en los lectores probados en Linux: Okular, Firefox, Chrome y xpdf.
Sin embargo, un destinatario con Windows observó este comportamiento:
| Visor en Windows | Apariencia de la firma |
|---|---|
| Adobe Acrobat Reader | Incorrecta |
| Chrome | Incorrecta |
| Firefox | Correcta |
Esto apunta a una diferencia en cómo los lectores interpretan la apariencia de la firma. No significa que Windows siempre falle ni que todas las firmas generadas por Okular tengan este problema.
También debemos distinguir dos elementos:
- La firma digital criptográfica, que permite comprobar la integridad del documento y su vinculación con un certificado.
- La apariencia visible de la firma, el recuadro con el nombre, la fecha y otros datos.
Que el recuadro se vea mal no demuestra que la firma digital sea inválida. Su validación debe comprobarse por separado.
1. Diagnóstico previo: ¿necesitas cambiar algo?
No existe un comando que garantice, antes de generar el PDF, que todos los lectores mostrarán correctamente la firma. Sin embargo, podemos detectar una configuración parecida a la del caso investigado y evitar cambios innecesarios.
Comprobar qué fuente se utiliza para Helvetica
Ejecuta:
fc-match Helvetica
En nuestro equipo aparecía:
NimbusSans-Regular.otf: "Nimbus Sans" "Regular"
Esto significa que, cuando una aplicación solicita Helvetica mediante Fontconfig, el sistema selecciona Nimbus Sans en formato OTF.
Este resultado es una pista, no una prueba de fallo. Tener Nimbus Sans instalada o utilizar una fuente OTF no implica, por sí solo, que el PDF vaya a mostrarse mal.
Si aparece:
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
La sustitución que proponemos ya está activa o tu sistema selecciona esa fuente de forma predeterminada. En ese caso, no necesitas crear otra regla igual.
Comprobar un PDF que ya hayas firmado
Si tienes un documento firmado con tu configuración actual, ábrelo en los lectores donde necesitas que funcione. Para reproducir la comprobación de este artículo, utiliza Adobe Acrobat Reader o Chrome en Windows.
Comprueba el archivo original enviado, sin imprimirlo de nuevo a PDF ni convertirlo.
| Resultado del diagnóstico | Qué hacer |
|---|---|
| La firma se ve correctamente en los lectores de destino | Puedes ahorrarte el cambio |
| La firma se ve mal y Helvetica se resuelve como Nimbus Sans OTF | Prueba la sustitución de este artículo |
| La firma se ve mal y ya se selecciona Liberation Sans | Esta sustitución no aporta un cambio; hay que investigar otra causa |
| Solo has comprobado el PDF en Linux | Todavía no puedes asegurar cómo se verá en los lectores afectados |
Si no tienes un PDF firmado de prueba, tendrás que generar uno. La selección de fuentes del sistema permite anticipar qué conviene revisar, pero no sustituye la comprobación del documento resultante.
2. Consultar las versiones
Para identificar el entorno, ejecuta:
okular --version pdfsig -v
En nuestro caso:
okular 25.04.0 pdfsig version 24.02.0
La versión de pdfsig corresponde a esa herramienta. No garantiza que Okular utilice exactamente la misma versión de Poppler, especialmente si está instalado mediante Flatpak u otro paquete con dependencias propias.
Conviene mantener Okular y sus bibliotecas actualizados mediante los mecanismos de la distribución. No obstante, aquí no identificamos una versión concreta que garantice la corrección del problema.
3. Comparar las fuentes del PDF antes y después de firmarlo
Este paso permite comprobar qué fuentes aparecen durante el proceso de firma.
Conserva el original sin firmar y ejecuta:
pdffonts documento-original.pdf pdffonts documento-firmado.pdf
Si el nombre contiene espacios, utiliza comillas:
pdffonts "documento firmado.pdf"
pdffonts y pdfsig suelen distribuirse con las utilidades de Poppler. Si los comandos no existen en tu equipo, instala el paquete correspondiente de tu distribución.
En nuestro caso, después de firmar aparecieron estas fuentes adicionales:
name type encoding emb sub uni object ID ------------- ----------------- -------------- --- --- --- --------- Helvetica Type 1 Custom no no no 26 0 ZapfDingbats Type 1 ZapfDingbats no no no 27 0 Helvetica CID Type 0C (OT) Identity-H yes no no 173 0
Los números de objeto pueden ser diferentes en otros documentos.
La columna emb indica si la fuente está incrustada:
yes: está incrustada.no: no está incrustada.
Aquí encontramos un detalle importante: la Helvetica de tipo CID ya estaba incrustada. Por tanto, la explicación no puede reducirse a que faltaba incrustar la fuente.
Además, Helvetica y ZapfDingbats pertenecen a las fuentes estándar de PDF: que aparezcan sin incrustar no demuestra automáticamente un defecto. Tampoco uni no significa, por sí solo, que el texto deba verse mal.
Existe un informe en el seguimiento de KDE que describe problemas de visualización en Windows con una firma que incorpora Helvetica CID Type 0C (OT). Es un antecedente similar, aunque no confirma la causa exacta de nuestro documento.
4. Comprobar que Liberation Sans está instalada
Vamos a probar una fuente alternativa en formato TrueType.
Ejecuta:
fc-match "Liberation Sans"
El resultado esperado es similar a este:
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
Comprueba que la familia indicada sea realmente Liberation Sans. Fontconfig puede devolver otra fuente cuando la solicitada no está instalada.
Si aparece otra familia, instala las fuentes Liberation con el gestor de paquetes de tu distribución antes de continuar.
5. Configurar la sustitución de Helvetica
Cierra completamente Okular.
Vamos a crear una regla para tu usuario. No necesita sudo y no requiere modificar la configuración general del sistema.
Si ya existe un archivo con el nombre utilizado a continuación, guarda una copia antes de sobrescribirlo.
Copia este bloque completo en la terminal:
mkdir -p ~/.config/fontconfig/conf.d cat > ~/.config/fontconfig/conf.d/99-helvetica-liberation.conf <<'EOF' <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="pattern"> <test name="family" compare="eq"> <string>Helvetica</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Liberation Sans</string> </edit> </match> </fontconfig> EOF
La línea final EOF debe quedar sola, sin espacios delante. No añadas barras invertidas al final de las líneas.
Esta regla da preferencia a Liberation Sans cuando se solicita Helvetica mediante Fontconfig.
El cambio puede afectar a otras aplicaciones de tu usuario que utilicen esta configuración. No sustituye las fuentes ya incrustadas en los PDF existentes.
6. Comprobar que el cambio está activo
Ejecuta:
fc-cache -f fc-match Helvetica
Ahora debería aparecer:
LiberationSans-Regular.ttf: "Liberation Sans" "Regular"
En el equipo investigado, esta sustitución sí quedó comprobada: se pasó de Nimbus Sans OTF a Liberation Sans TTF.
Si continúa apareciendo Nimbus Sans, comprueba el contenido del archivo:
cat ~/.config/fontconfig/conf.d/99-helvetica-liberation.conf
Revisa también cualquier error que muestre Fontconfig.
Ejecutar fc-cache -f sin crear la regla no cambia la fuente seleccionada.
7. Generar y verificar una nueva firma
Abre nuevamente Okular y firma una copia del documento original sin firmar.
Después:
- Comprueba la apariencia en tu equipo.
- Consulta las fuentes del nuevo PDF.
- Abre ese mismo archivo en Adobe Acrobat Reader o Chrome del equipo donde fallaba.
- Comprueba también la validación digital de la firma.
Para consultar las fuentes:
pdffonts documento-firmado-prueba.pdf
Que fc-match muestre Liberation Sans confirma la configuración del sistema, pero no demuestra por sí solo que el problema del PDF esté solucionado. Hay que verificar el archivo generado en el lector afectado.
El nombre interno de la fuente en el PDF puede diferir del nombre del archivo del sistema, por lo que la etiqueta mostrada por pdffonts tampoco basta por sí sola para identificar el archivo tipográfico utilizado.
Si utilizas Okular mediante Flatpak, su entorno puede tener una configuración de fuentes diferente. La selección que muestra la terminal del sistema no garantiza que la aplicación aislada esté aplicando esa misma regla.
8. Cómo deshacer la sustitución
Este paso es opcional: ejecútalo únicamente si quieres retirar el cambio.
rm ~/.config/fontconfig/conf.d/99-helvetica-liberation.conf fc-cache -f fc-match Helvetica
Después, cierra y vuelve a abrir las aplicaciones afectadas.
En nuestro equipo, al eliminar la regla volvió a seleccionarse Nimbus Sans.
Si la sustitución funciona y quieres conservarla, no borres el archivo. La configuración seguirá disponible para futuras sesiones.
¿Y los PDF que ya están firmados?
Esta configuración está orientada a generar futuras firmas.
Para obtener una copia corregida, vuelve al original sin firmar y genera una nueva firma después de aplicar el cambio.
Modificar las fuentes de un PDF ya firmado puede invalidar su firma o provocar advertencias de modificaciones posteriores. Imprimirlo de nuevo a PDF tampoco conserva la firma criptográfica original.
Si el problema continúa
Si la nueva firma sigue mostrando caracteres extraños, la sustitución no ha resuelto el caso. Será necesario comprobar qué biblioteca utiliza Okular, revisar las fuentes realmente incorporadas o probar otra herramienta de firma.
En esta experiencia hemos confirmado la sustitución de fuente en Linux. La corrección visual solo podrá darse por confirmada cuando el nuevo PDF se vea correctamente en los lectores que antes fallaban.
Referencias
- Documentación oficial de Fontconfig.
- Informe KDE 477108: problemas de fuentes y texto al firmar.
- Manual de Okular: firmas digitales.
-
Software
- Solucionar caracteres raros al firmar un PDF con Okular
- Páginas web que parecen un escritorio: cómo crear un sistema operativo dentro del navegador
- Países Bajos desarrolla DAWO, un entorno gubernamental basado en NixOS y software libre
- CyberPanel: qué es y comparativa con Plesk y cPanel para administrar servidores web
- Piwik: La gran alternativa libre a Google Analytics ahora se llama Matomo
- Guía Maestra: Cómo hacer una Migración correcta en PrestaShop
- Le preguntaron a Richard Stallman: ¿Es mala la piratería de software?
- Mejor que diff, meld, comparar gráficamente archivos y carpetas en Linux, y sencillo Control de Versiones
- Las 14 mejores herramientas para acceder al escritorio remoto de Linux
- El software de declaración de impuestos del IRS que TurboTax intenta eliminar se ha vuelto de código abierto
- Seis programas de software libre para el día a día de la empresa
- Joomla 6, ¿Qué hay para ti?



