Simples assim
Alternativa para o uso do siFR com o cakephp
Olá,
Recentemente em alguns projetos, a nossa equipe precisou usar fontes que não são de sistemas em titulos e textos espalhados pelo site, tentamos usar o siFR mas não deu muito certo, pois a gente precisava trocar algumas labels com ajax e não funcionaria ja que ele cria o embed da font assim que o site é carregado.
Então, devido a esse grande problemas que encontramos pela frente, resolvi utilizar um helper do cakephp para transformar aquele texto em imagens de 4k cada.
Depois da ideia ter sido aprovada, então começei a criar, vamos la.
Primeiramente vamos utilizar 2 helpers do cakephp encontrados no bakery do cakephp
text_image.php e o font_site.php.
Depois de ter baixado os helpers acima e colocado no diretório helpers dentro de views,
vamos chamar o nosso helper na controller da página que vamos usar, eu precisei colocar na app_controller
pois precisei usar em todo site, mas para página especificas, o bom é usar somente na controller da página.
Bom, continuando…
Depois de chamar o helper na app_controller, precisamos criar um diretório “fonts” dentro do diretório da nossa app

Dentro desse diretório, vamos colocar as fontes que vamos usar no projeto no meu caso foi a ITC Avant Garde PRO, mas podemos usar qualquer uma, claro, não vamos usar uma fonte de sistema para fazer isso.
Depois de criado, vamos criar dentro do nosso diretório “webroot -> img” um diretório para deixar as imagens geradas, eu criei um font_site, isso a gente altera dentro do helper.
var $__imagePath = 'font_site';

Depois de tudo certo, vamos chamar o helper para gerar a nossa imagem.
A gente pode criar um método no nosso helper para não precisar chamar em todas as páginas a função que gera a imagem, mas vou postar aqui do modo simples, ai fica de cada um fazer de um modo melhor.
Vamos la,
$textImage->fontFile = "Avant.ttf";
//Tamanho da fonte
$textImage->setPointSize(36);
//Cor da fonte
$textImage->setColor("#818181");
//BG da fonte
$textImage->setBgColor("#ffffff");
//Texto para ser transformado em imagem
echo $textImage->image("www.flaviomuniz.com");
Podemos tambem, utilizar um background, setBgColor.
Vejam alguns resultados com as fontes geradas.
![]()
![]()
![]()
Não é necessário instalar as fontes, basta copiar para dentro do diretório fonts sitado a cima.
Espero ter ajudado.
Até a próxima.
[ad] Empty ad slot (#1)!
| Print article | This entry was posted by flaviomuniz on 06/02/2010 at 01:42, and is filed under Ajax, CakePhp, Funções, PHP, Projects, base, jQuery. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
about 5 months ago
Esta técnica é muito boa quando você a utiliza com um cache, afim de manter todas as imagens salvas como arquivo no servidor e não gerar processamento extra. Na DBD fizemos um projeto assim com rMagick que quando salva uma página ele gera as imagens e as salva no diretório.
Quando resolveram utilizar siFR foi exatamente pra deixar todo o processamento para o cliente e não mais para o servidor.
Mas agora é esperar o HTML5 e CSS3 pegar de verdade e o problema se resolve.
Abraços
about 5 months ago
Isso mesmo Marcio, a ideia de usar esse método, é deixar em cache e só processar novamente se for alterado o texto, do contrário ele não ira criar uma nova imagem cada vez que a página é aberta.
Abraço.
about 5 months ago
Ótimo post!