Se você usar o plugin PDF Invoices & Packing Slips for WooCommerce para gerar faturas de pedidos, pode notar que certos símbolos de moeda — como ₴, ₸, ₺, ₽, € e outros — aparecem como caixas em branco ou pontos de interrogação nos arquivos PDF gerados.
🔍 Por que isso acontece?
As bibliotecas de geração de PDF (DomPDF e mPDF, ambas usadas por este plugin) dependem de fontes que são incorporadas no PDF. A fonte padrão usada por essas bibliotecas não inclui glifos para muitos símbolos de moeda internacionais. Como resultado, esses caracteres simplesmente não podem ser renderizados e aparecem quebrados.
A solução é forçar o mecanismo de PDF a usar DejaVu Sans — uma fonte com ampla cobertura Unicode que inclui praticamente todos os símbolos de moeda usados mundialmente.
✅ A Solução
Adicione o seguinte código ao arquivo functions.php do seu tema ou a um plugin específico do site.
Passo 1: Adicione o código
// Corrigir símbolos de moeda em faturas PDF (PDF Invoices & Packing Slips for WooCommerce).
// Força a fonte DejaVu Sans que tem cobertura completa de símbolos de moeda 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;
});
Passo 2: Faça o upload dos arquivos de fonte DejaVu Sans
Os arquivos de fonte devem estar disponíveis no seu servidor. Baixe DejaVu Sans (gratuito, de código aberto) e faça o upload dos seguintes quatro arquivos para o seu servidor — por exemplo, na pasta do seu tema ou em um diretório dedicado a fontes:
DejaVuSans.ttf
DejaVuSans-Bold.ttf
DejaVuSans-Oblique.ttf
DejaVuSans-BoldOblique.ttf
💡 Onde obter a fonte: Baixe de dejavu-fonts.github.io — é completamente gratuito e de código aberto.
💡 Nota sobre mPDF: Se você estiver usando mPDF como seu mecanismo de PDF, atualize os caminhos dos arquivos no filtro wpo_wcpdf_mpdf_font_data para corresponder à localização real dos arquivos de fonte no seu servidor.
🔧 Qual mecanismo de PDF você está usando?
O plugin suporta dois mecanismos de renderização de PDF:
| Mecanismo | Hook que se aplica |
|---|---|
| DomPDF (padrão) | wpo_wcpdf_dompdf_options + wpo_wcpdf_before_document |
| mPDF | wpo_wcpdf_mpdf_font_data + wpo_wcpdf_before_document |
O código acima cobre ambos os mecanismos — você pode adicionar com segurança todos os três hooks, independentemente de qual mecanismo está ativo.
✅ Símbolos corrigidos por esta solução
Após aplicar a correção, os seguintes símbolos de moeda (e muitos outros) serão renderizados corretamente em suas faturas PDF:
| Símbolo | Moeda |
|---|---|
| ₴ | Hryvnia ucraniana |
| ₸ | Tenge cazaque |
| ₺ | Lira turca |
| ₽ | Rublo russo |
| € | Euro |
| £ | Libra esterlina |
| ¥ | Iene japonês / Yuan chinês |
| ₩ | Won sul-coreano |
| ₫ | Dong vietnamita |
⚠️ Notas importantes
- Esta correção se aplica apenas a PDFs gerados por PDF Invoices & Packing Slips for WooCommerce
- Não afeta a aparência do frontend da sua loja WooCommerce
- Se você mudar os mecanismos de PDF nas configurações do plugin, a correção continua funcionando — todos os três hooks estão cobertos
- Após adicionar o código, regenere uma fatura existente para confirmar que os símbolos agora são renderizados corretamente