# Como corrigir certificados que não geram PDF no Tutor LMS

O certificado que não gera PDF no Tutor LMS acontece, na maioria das vezes, porque a extensão PHP Imagick esta ausente no servidor, o addon de Certificado não foi ativado, nenhum template foi atribuido ao curso ou a imagem de fundo esta fora das dimensoes exigidas.

## O que é certificado que não gera PDF no Tutor LMS?

O certificado no Tutor LMS e gerado pelo addon de Certificado (recurso PRO): ao concluir um curso, o aluno ve o botão View Certificate na página de visao geral do curso e pode baixar o documento em PDF ou JPG. A geração do arquivo depende do servidor renderizar a imagem do certificado a partir do template atribuido ao curso, o que exige uma extensão grafica do PHP e recursos de processamento.

O problema de certificado que não gera PDF no Tutor LMS aparece quando essa renderizacao falha: o botão de download não surge, o clique não gera arquivo, ou o PDF baixa em branco ou com a imagem distorcida. Segundo a documentação oficial da Themeum, a causa número um e a falta da extensão PHP Imagick no servidor: sem ela, o recurso de certificado simplesmente não funciona. Hospedagens compartilhadas frequentemente não habilitam o Imagick por padrão.

## Como identificar

- O botão 'View Certificate' não aparece na página de visao geral do curso mesmo depois de o aluno concluir 100% do conteúdo.
- Ao clicar em baixar, nenhum arquivo PDF e gerado e a tela fica em branco ou volta para a página do curso.
- O PDF baixa, mas vem totalmente em branco ou apenas com o texto, sem a imagem de fundo do certificado.
- A imagem do certificado aparece distorcida, esticada ou cortada no PDF gerado.
- No log de erros do PHP surge algo como 'Call to undefined function imagick' ou 'Class Imagick not found' ao tentar gerar o certificado.
- A geração trava e retorna erro de tempo esgotado ('Maximum execution time exceeded') ou de memória em sites com muitos certificados.

**Antes de começar:** Antes de editar o php.ini, o wp-config.php ou trocar a imagem do template em producao, faça um backup completo do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso a geração do certificado continue falhando.

## Como prevenir

- Antes de habilitar certificados em producao, confirme com o provedor que a extensão PHP Imagick esta instalada e ativa no servidor.
- Padronize as imagens de fundo dos templates em png/jpg/jpeg de até 150KB nas dimensoes 852x606 ou 606x852, validando cada template no Certificate Builder antes de atribuir ao curso.
- Mantenha o PHP, o MySQL e o Tutor LMS Pro nas versões suportadas, testando atualizações em staging antes de aplicar no site ao vivo.
- Reserve memory_limit e max_execution_time folgados para a geração de PDF e monitore os recursos do servidor em cursos com muitos alunos concluindo ao mesmo tempo.
- Sempre atribua um template de certificado ao criar um curso e conclua um teste de ponta a ponta gerando um certificado de exemplo antes de publicar.

Erros relacionados

- [Como corrigir certificados que não chegam por e-mail no Tutor LMS](https://full.services/wp-fixer/corrigir-certificado-email-tutor-lms/)
- [Como corrigir quizzes que não salvam respostas no Tutor LMS](https://full.services/wp-fixer/corrigir-quiz-nao-salva-tutor-lms/)
- [Como corrigir o progresso do aluno que não atualiza no Tutor LMS](https://full.services/wp-fixer/corrigir-progresso-aluno-tutor-lms/)

## Causa

- A extensão PHP Imagick não esta instalada nem habilitada no servidor: segundo a doc oficial da Themeum, sem o Imagick o recurso de certificado do Tutor LMS não funciona, e muitas hospedagens compartilhadas não a ativam por padrão.
- O addon de Certificado não foi ativado em Tutor LMS Pro -> Add-ons, entao o motor que renderiza e baixa o documento nem e carregado para o curso.
- Nenhum template de certificado foi atribuido ao curso na seção Certificate Template da edição do curso, fazendo o botão de download não aparecer após a conclusão.
- A imagem de fundo do certificado esta fora das regras da doc oficial: passa de 150KB, usa formato diferente de png/jpg/jpeg ou não tem as dimensoes 852x606 (paisagem) ou 606x852 (retrato), gerando PDF em branco ou distorcido.
- Os recursos do servidor (CPU e RAM) ou o memory_limit/max_execution_time do PHP são baixos demais para renderizar a imagem do certificado, e o processo de geração estoura antes de concluir o PDF.
- A versão do PHP ou do MySQL esta defasada em relacao ao exigido pelo Tutor LMS Pro, fazendo a rotina de geração do certificado falhar no servidor.

## Como resolver

1. Confirme que o addon de Certificado esta ativo: Antes de mexer no servidor, garanta que o motor do certificado esta ligado. No painel do Tutor LMS Pro, abra a área de Add-ons e ative o Certificate. Sem o addon ativo, o botão de download nem e gerado.

```
Painel WP -> Tutor LMS Pro -> Add-ons
Localize 'Certificate' e ative o interruptor
Salve as alterações
```

2. Atribua um template de certificado ao curso: Na edição do curso, va até a seção Certificate Template, escolha um modelo (pre-pronto ou criado no Certificate Builder) e clique em Use This. Um curso sem template atribuido não mostra o botão View Certificate ao aluno.

```
Painel WP -> Cursos -> abra o curso -> seção 'Certificate Template'
Selecione um template e clique em 'Use This'
Clique em 'Update' para salvar o curso
```

3. Verifique se a extensão PHP Imagick esta habilitada: Esta e a causa número um segundo a doc oficial: sem o Imagick o certificado não gera. Crie um arquivo de diagnostico ou abra Ferramentas -> Saude do site -> Info para conferir se o Imagick aparece entre as extensões ativas. Se não aparecer, peca ao seu provedor de hospedagem para instalar e ativar a extensão Imagick do PHP.

```
Painel WP -> Ferramentas -> Saude do site -> aba Informações -> seção Servidor
Procure 'Imagick' na lista de módulos do PHP
Se ausente: abra um chamado no provedor pedindo a extensão 'php-imagick'
```

4. Ajuste a imagem de fundo do certificado: Abra o template no Certificate Builder e confira a imagem de fundo. A doc oficial exige png, jpg ou jpeg de no máximo 150KB com dimensoes 852x606 para paisagem ou 606x852 para retrato. Fora dessas regras o PDF sai em branco ou distorcido. Reexporte a imagem no tamanho correto e troque no template.

```
Painel WP -> Tutor LMS Pro -> Certificate Builder -> abra o template
Substitua a imagem de fundo por um arquivo png/jpg/jpeg <= 150KB
Use 852x606 px (paisagem) ou 606x852 px (retrato) e salve
```

5. Aumente os limites de PHP do servidor: A renderizacao do certificado consome CPU e RAM. Se a geração trava ou estoura, eleve memory_limit e max_execution_time no php.ini (ou no wp-config como interim) e confirme que o PHP e o MySQL estão em versões suportadas pelo Tutor LMS Pro. Reinicie o PHP após editar o php.ini.

```
memory_limit = 256M
max_execution_time = 120
Após editar o php.ini, reinicie o serviço PHP (PHP-FPM)
```


## Código

```php
<?php
// Diagnostico: rode via WP-CLI (wp eval-file check-cert.php) ou mu-plugin temporario.
// Confirma os pre-requisitos de geracao de certificado do Tutor LMS.

$ok = true;

// 1. Extensao Imagick (causa numero um na doc oficial).
if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) ) {
    echo "[FALHA] Extensao PHP Imagick ausente. Peca ao provedor o pacote php-imagick.n";
    $ok = false;
} else {
    echo "[OK] Imagick carregado.n";
}

// 2. Limites de PHP para renderizar o PDF.
$mem = (int) ini_get( 'memory_limit' );
if ( $mem > 0 && $mem < 256 ) {
    echo "[ALERTA] memory_limit em {$mem}M. Recomendado 256M para gerar o PDF.n";
}
if ( (int) ini_get( 'max_execution_time' ) > 0 && (int) ini_get( 'max_execution_time' ) < 120 ) {
    echo "[ALERTA] max_execution_time baixo. Recomendado 120s.n";
}

// 3. Addon de Certificado ativo no Tutor LMS Pro.
if ( function_exists( 'tutor_utils' ) ) {
    $addons = (array) get_option( 'tutor_addons_config', array() );
    $cert   = $addons['tutor-pro/addons/tutor-certificate/tutor-certificate.php'] ?? array();
    if ( empty( $cert['is_enable'] ) ) {
        echo "[FALHA] Addon Certificate desativado em Tutor LMS Pro -> Add-ons.n";
        $ok = false;
    } else {
        echo "[OK] Addon Certificate ativo.n";
    }
}

echo $ok ? "Pre-requisitos do certificado OK.n" : "Corrija os itens [FALHA] acima.n";
```

## Perguntas frequentes

### Por que o certificado do Tutor LMS não gera o PDF

Na maioria dos casos falta a extensão PHP Imagick no servidor, que a documentação oficial da Themeum aponta como obrigatoria para o recurso de certificado. Verifique em Ferramentas -> Saude do site se o Imagick aparece e, se não, peca ao provedor para instalar a extensão php-imagick.

### O botão de baixar certificado não aparece para o aluno, o que fazer

O botão View Certificate so surge quando o addon de Certificado esta ativo, um template foi atribuido ao curso e o aluno concluiu 100% do conteúdo. Confirme os três requisitos: ative o addon em Add-ons, atribua um template na edição do curso e cheque o progresso do aluno.

### O certificado baixa em branco ou distorcido, qual a causa

Quase sempre a imagem de fundo esta fora das regras da doc oficial. Use png, jpg ou jpeg de no máximo 150KB com dimensoes 852x606 (paisagem) ou 606x852 (retrato). Reexporte a imagem no tamanho certo e troque no template pelo Certificate Builder.

### Preciso de uma extensão específica do PHP para o certificado funcionar

Sim. A documentação do Tutor LMS afirma que a extensão Imagick precisa estar instalada e ativa, pois sem ela o recurso de certificado não funciona. Muitas hospedagens compartilhadas não habilitam o Imagick por padrão, entao confirme com o provedor.

### A geração do certificado da erro de tempo esgotado ou de memória

A renderizacao consome CPU e RAM. Aumente o memory_limit e o max_execution_time no php.ini, garanta PHP e MySQL em versões suportadas e verifique os recursos do servidor, especialmente em sites com muitos certificados sendo gerados ao mesmo tempo.

### O certificado funciona sem o Tutor LMS Pro

Não. O addon de Certificado e um recurso PRO do Tutor LMS. Ele precisa ser ativado em Tutor LMS Pro -> Add-ons para que o motor que renderiza e baixa o certificado em PDF ou JPG seja carregado nos cursos.

### Posso baixar o certificado em outro formato além de PDF

Sim. Na tela do certificado o aluno pode baixar em PDF ou JPG e também imprimir pelo navegador. Se o PDF falhar mas o JPG funcionar, o problema costuma estar na renderizacao do PDF pelo servidor, reforcando a checagem do Imagick e dos limites do PHP.

### Como saber se o problema e do servidor ou do Tutor LMS

Cheque primeiro o servidor: confirme o Imagick em Saude do site, as versões de PHP e MySQL e os limites de memória. Se tudo estiver correto, teste com um tema padrão e desative outros plugins para descartar conflito, recarregando a página do certificado a cada teste.

**Fonte:** [Tutor LMS — Certificate troubleshooting (Themeum docs)](https://docs.themeum.com/tutor-lms/troubleshooting/certificate/)
