Si utilizas el plugin Facturas PDF y Albaranes para WooCommerce para generar facturas de pedidos, puedes notar que ciertos símbolos de moneda — como ₴, ₸, ₺, ₽, € y otros — aparecen como cuadros en blanco o signos de interrogación en los archivos PDF generados.
🔍 ¿Por Qué Sucede Esto?
Las bibliotecas de generación de PDF (DomPDF y mPDF, ambas utilizadas por este plugin) dependen de fuentes que están incrustadas en el PDF. La fuente predeterminada utilizada por estas bibliotecas no incluye glifos para muchos símbolos de moneda internacionales. Como resultado, esos caracteres simplemente no pueden ser renderizados y aparecen rotos.
La solución es forzar al motor de PDF a usar DejaVu Sans — una fuente con amplia cobertura Unicode que incluye prácticamente todos los símbolos de moneda utilizados en todo el mundo.
✅ La Solución
Agrega el siguiente código al archivo functions.php de tu tema o a un plugin específico del sitio.
Paso 1: Agrega el código
// Soluciona los símbolos de moneda en las facturas PDF (Facturas PDF y Albaranes para WooCommerce).
// Fuerza la fuente DejaVu Sans que tiene cobertura completa de símbolos de moneda Unicode.
add_action('wpo_wcpdf_before_document', function() {
echo '<style>body, * { font-family: dejavu sans, sans-serif !important; }</style>';
});
add_filter('wpo_wcpdf_dompdf_options', function($options) {
$options['defaultFont'] = 'DejaVuSans';
return $options;
});
add_filter('wpo_wcpdf_mpdf_font_data', function($font_data) {
$font_data['dejavusans'] = [
'R' => 'DejaVuSans.ttf',
'B' => 'DejaVuSans-Bold.ttf',
'I' => 'DejaVuSans-Oblique.ttf',
'BI' => 'DejaVuSans-BoldOblique.ttf',
];
return $font_data;
});
Paso 2: Sube los archivos de fuente DejaVu Sans
Los archivos de fuente deben estar disponibles en tu servidor. Descarga DejaVu Sans (gratis, de código abierto) y sube los siguientes cuatro archivos a tu servidor — por ejemplo, en la carpeta de tu tema o en un directorio dedicado a fuentes:
DejaVuSans.ttf
DejaVuSans-Bold.ttf
DejaVuSans-Oblique.ttf
DejaVuSans-BoldOblique.ttf
💡 Dónde obtener la fuente: Descarga desde dejavu-fonts.github.io — es completamente gratis y de código abierto.
💡 Nota sobre mPDF: Si estás usando mPDF como tu motor de PDF, actualiza las rutas de los archivos en el filtro wpo_wcpdf_mpdf_font_data para que coincidan con la ubicación real de los archivos de fuente en tu servidor.
🔧 ¿Qué Motor de PDF Estás Usando?
El plugin soporta dos motores de renderizado de PDF:
| Motor | Hook que aplica |
|---|---|
| DomPDF (predeterminado) | wpo_wcpdf_dompdf_options + wpo_wcpdf_before_document |
| mPDF | wpo_wcpdf_mpdf_font_data + wpo_wcpdf_before_document |
El código anterior cubre ambos motores — puedes agregar con seguridad los tres hooks independientemente de qué motor esté activo.
✅ Símbolos Corregidos por Esta Solución
Después de aplicar la solución, los siguientes símbolos de moneda (y muchos más) se renderizarán correctamente en tus facturas PDF:
| Símbolo | Moneda |
|---|---|
| ₴ | Grivna ucraniana |
| ₸ | Tenge kazajo |
| ₺ | Lira turca |
| ₽ | Rublo ruso |
| € | Euro |
| £ | Libra esterlina |
| ¥ | Yen japonés / Yuan chino |
| ₩ | Won surcoreano |
| ₫ | Dong vietnamita |
⚠️ Notas Importantes
- Esta solución se aplica solo a los PDFs generados por Facturas PDF y Albaranes para WooCommerce
- No afecta la apariencia del frontend de tu tienda WooCommerce
- Si cambias de motor de PDF en la configuración del plugin, la solución sigue funcionando — los tres hooks están cubiertos
- Después de agregar el código, regenera una factura existente para confirmar que los símbolos ahora se renderizan correctamente