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
0
Incrível! 
Erro!