Notícias:

SMF - Just Installed!

Menu principal

ppdf como codificar em UTF8 ?

Iniciado por rafael, Dezembro 18, 2017, 04:37:33 PM

tópico anterior - próximo tópico

rafael

Boa tarde a todos,

Tive numa aventura criando uma biblioteca de código de barras pra usar com ppdf e só agora no final que me dei conta que ele só aceita ascii.

Queria saber se tem como adicionar uma função para codificar texto em UTF-8 ?

o código é em C e de C eu não entendo nada.


https://uploaddeimagens.com.br/imagens/captura_de_tela_de_2017-12-18_18-34-34-png



adalberto

Ainda estou em busca de uma lib pdf em C que aceita utf8 e que seja portável.

Encontrei uma, mas até hoje não consegui reproduzir caracteres utf8 nela em C, falta de tempo para testá-la de modo aprofundado.

Há uma outra lib em código puro Lua que gera saída utf8, mas ela não gera imagem e nem código de barra. Eu apenas modifiquei as palavras chave (if, end, function etc) para prisma, os nomes de variáveis estão como no original luafpdf.lua

Segue em anexo fpdf.pris  + teste para vc dar uma analisada.

(Ainda vou tentar criar uma lib em C com mais suporte, nas férias terei mais tempo para isso)


rafael

Cara, salvou a pátria agora!

No começo vi que tinha muita coisa em inglês e logo resolvi traduzir.

Já tem várias funções prontas.

O código que fiz do outro PPDF deu pra portar sem problemas só um CtrlC + CtrlV

https://uploaddeimagens.com.br/imagens/captura_de_tela_de_2017-12-20_02-02-31-png
https://uploaddeimagens.com.br/imagens/captura_de_tela_de_2017-12-20_02-04-15-png

Não vou postar ela agora porque vou incluir o código de barras nesta biblioteca.

Quando terminar eu posto.

adalberto

Que bom que deu certo.

Pelo que tenho pesquisado, o formato pdf não usa a codificação utf8 e sim outra codificação. Vou dar mais uma estudada nesse assunto.

Não consegui inserir imagens nessa lib fpdf, dá um erro, mas acho que vale a pena tentar melhorá-la e implementar novas funções nela que começar outra do zero.

rafael

#4
Também não consegui colocar imagens, olhei os fontes em PHP e as funções de parse jpeg e png e gif são diferentes.

Mas acho que já dá pra usar assim. Quando eu tiver um tempo vou estudar este código PHP.

Eu incluí a função para desenhar código de barras em 2de5 intercalado.

se alguém precisar está anexo.

rafael

#5
Consegui resolver o problema de acentuação do ppdf.c
A solução está na linha 654
Não sei porque no ano de 2017 , quase 2018 o PDF ainda não suporta codificação universal.
Foi necessário inserir uma marcação dizendo ao leitor de PDF que deverá ler o texto com a codificação Ansi

Salve o arquivo de texto com a codificação Windows 1252 ou iso8859-1
Se o texto estiver embutido no seu código salve .prisma com esta codificação


Mesmo assim vou em frente em tentar colocar as imagens no fpdf
esta biblioteca é bem mais intuitiva e mais completa. com ela consigo até colocar linhas com pontos decimais.

rafael

Feliz Natal!!!
++Que nosso querido Deus filho nos ilumine hoje e sempre!

Boas notícias:
Problema resolvido, pelo menos para o JPEG.

Deu muito trabalho mas graças a Deus deu certo. Por enquanto só funciona pra linux por que já existe um programa 'identify' que extrai detalhes de uma imagem.

Adicionei algumas funções como Código de Barras 2de5 intercalado, Polígono e Autoimprima.

Boa sorte e bons estudos a todos!


adalberto

Boa tarde. Feliz natal atrasado!

Eu resolvi também o problema de acentos no ppdf, não precisa nem salvar em cp1252, a própria função converte de utf8 para cp1252. (Nem todos os caracteres utf8 são suportados)

O melhor mesmo é uma biblioteca puramente em Prisma, acho que essa nova fpdf (versão baseada na php) é a melhor para dar continuidade.

Vou tentar refazer as funções C nela, incluindo o código de barra 128a e inserção de imagens.

Quais são as informações necessárias para embutir imagem jpeg?

Olhando um simples código em C consegui criar um mínimo parser que já extrai o tamanho de imagens jpeg.


Enfim, tudo de bom vc e seus familiares, paz e muita saúde!

E que Prisma continue a evoluir para nos ajudar mais ainda né!



rafael


adalberto

Boa noite, Rafael. Muito boa a informação do vídeo. Fiquei até mais curioso para me aprofundar na estrutura do pdf.

Estou quase terminando uma classe que pega informações do jpeg.
Em breve vou postar por aqui. Feito totalmente em Prisma.

Até mais.

adalberto

Demorou um pouco mas consegui.
Resolvi simplificar em vez de fazer uma classe apenas criei um biblioteca com duas funções:

local jpg = inclua'jpginfo';
local info = jpg.info('img.jpg');
se nao info entao imprima(jpg.erro()); sis.saia(1); fim
para i,v em pares(info) inicio
  imprima(i,':',v);
fim


Está em anexo a biblioteca jpginfo.pris e o exemplo.

Acho que já tem todas as informações necessárias para usar no fpdf;

Futuramente, quero fazer uma biblioteca imagem.pris que terá suporte não só a jpeg mas a png e outros.

Até mais.