Esta biblioteca é uma alternativa a lib pdf.pris.
Suporta:
- Cabeçalho de informação.
- Texto
- linha e retângulo.
- imagens – jpeg e ppm.
- código de barra.
- marcadores de página.
Baixe o código fonte com binário aqui: ppdf
Caso use Prisma em Linux 32bits instale o ppdf.so
já compilado, para outras distros incompatíveis, é necessário compilar.
Para Windows instale ppdf.dll
Esta lib estará incluída em Prisma a partir da versão 1.0.104 ou superior.
Veja o arquivo de referência e os exemplos na pasta Exemplos. aqui vou postar dois exemplos:
Exemplos 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
local ppdf = inclua'ppdf'; //criar uma tabela para o cabeçalho de informação: local info = { nome_programa='Prisma-1.0'; produtor = 'Prisma'; titulo = 'exemplo1: texto.pdf'; autor = 'Adalberto'; sobre = 'Este é apenas um exemplo de pdf gerado através da lib ppdf em Prisma'; data = sis.data(); } //criando um objeto pdf, params: larg,alt,tab_info); //Obs. há dois tipos de larg e alt predefinidos: LARG_A4 e ALT_A4, LARG_CARTA E ALT_CARTA); local pdf = ppdf.crie(ppdf.LARG_A4, ppdf.ALT_A4, info); //definir fonte: ppdf.def_fonte(pdf,"Times-BoldItalic"); //anexando página: pag = ppdf.ad_pagina(pdf); msg = 'ESSA LIB PDF NAO ACEITA CARACTERES COM ACENTO Â Ó Í'; height = ppdf.ad_texto_quebralinha(pdf,nulo,//segundo arg nulo, padrão é a última página. msg, 16,//tamanho fonte 60, //pos x ppdf.ALT_A4 - 20,//pos y ppdf.ROXO, //cor 300 //altura ); ppdf.ad_texto(pdf,nulo,'mais um texto',30,60,600,ppdf.rgb(0,0,0)); //salvar o pdf em arquivo: ppdf.salve(pdf,"texto.pdf"); //por fim nunca se esqueç de liberar a memoria: ppdf.destrua(pdf);//libera memoria |
Exemplo 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
local ppdf = inclua'ppdf'; //criar uma tabela para o cabeçalho de informação: local info = { nome_programa='Prisma-1.0'; produtor = 'Prisma'; titulo = 'exemplo1: texto.pdf'; autor = 'Adalberto'; sobre = 'Este é apenas um exemplo de pdf gerado através da lib ppdf em Prisma'; data = sis.data(); } //criando um objeto pdf, params: larg,alt,tab_info); //Obs. há dois tipos de larg e alt predefinidos: LARG_A4 e ALT_A4, LARG_CARTA E ALT_CARTA); local pdf = ppdf.crie(ppdf.LARG_A4, ppdf.ALT_A4, info); //definir fonte: ppdf.def_fonte(pdf,"Times-Bold"); //anexando página: pag = ppdf.ad_pagina(pdf); ppdf.ad_texto(pdf,pag,'Exemplo de Imagem jpeg:',14,20, ppdf.ALT_A4 - 20, ppdf.MARROM); local altura = ppdf.ALT_A4; //-------------- (pdf,pag,x,y,larg,alt,larg_lin,cor); local img_alt, img_larg = 100,100; ppdf.ad_jpeg(pdf,pag,100,altura - 150,img_larg,img_alt,'a.jpg'); ppdf.ad_texto(pdf,pag,'Exemplo de Imagem ppm:',14,20, ppdf.ALT_A4 - 200, ppdf.VERMELHO); ppdf.ad_ppm(pdf,pag,100,altura - 290,60,60,'a.ppm'); ppdf.salve(pdf,"zimagens.pdf"); //por fim nunca se esqueç de liberar a memoria: ppdf.destrua(pdf);//libera memoria |
Manual de referência:
Manual de referência da biblioteca ppdf-0.1 Prisma.
Inclua a biblioteca: local ppdf = inclua’ppdf’;
1 – pdf, err = ppdf.crie(tab);
Cria um novo objeto pdf.
Parâmetros:
tab – uma tabela que deve conter os seguintes campos:
local tab = { nome_programa = ‘Programa gerador’, produtor = ‘programa gerador’, titulo = ‘titulo pdf’, autor = ‘Nome Autor’, data = ‘dia, mês, ano, hora etc’, sobre = ‘uma descrição sobre o pdf gerado’ } |
Retornos:
pdf – um objeto pdf ou nulo em caso de erro.
err – (número) código erro. Ou nulo se não houver erro.
2 – ret, err = ppdf.def_fonte(pdf, NomeFonte);
Define uma fonte para o texto em pdf (o padrão é Times-roman);
Parâmetros:
pdf – objeto pdf criado previamente.
NomeFonte – string nome da fonte.
Exemplos de fontes compatíveis:
“Helvetica”, “Helvetica-Bold”, “Helvetica-BoldOblique”, “Helvetica-Oblique”, “Courier”, “Courier-Bold”, “Courier-BoldOblique”, “Courier-Oblique”, “Times-Roman”, “Times-Bold”, “Times-Italic”, “Times-BoldItalic”, “Symbol”, “ZapfDingbats” |
Retornos:
ret – nulo (falha) ou verdadeiro (sucesso);
err – (número) código erro. Ou nulo se não houver erro.
3 – pag, err = ppdf.ad_pagina(pdf);
Cria uma nova página.
Parâmetros:
pdf – objeto pdf criado previamente.
Retornos:
pag – objeto da página criada.
err – (número) código erro. Ou nulo se não houver erro.
4 – ret, err = ppdf.ad_texto_quebralinha(pdf, pag, txt, tam_fonte, X, Y,Cor,Alt);
Insere texto com quebra automática de linha.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
txt – o texto a ser inserido.
tam_fonte – tamanho da fonte (numero) ex.: 12
X – posição X (coluna)
Y – posição Y (linha); (Obs.: a linha é contada de baixo para cima, então 10 será o rodapé, alt – 10 é cabeçalho.)
Cor – (numero) cor da letra ( pode ser em hexadecimal, ex.: 0x008000 = verde, 0xFF0000 = vermelho. Ou use a função ppdf.rgb(r,g,b) – em que r, g e b é um valor de 0 a 255 ou 0x00 a 0xff )
Alt – altura do texto.
Retornos:
ret – nulo em caso de erro ou verdadeiro em caso de sucesso.
err – (numero) código de erro.
5 – Cor = ppdf.rgb(r,g,b);
Retorna uma cor.
Parâmetros:
r – número de 0 a 255 (ou em hexa 0x00 a 0xff); (red – vermelho);
g – número de 0 a 255 (ou em hexa 0x00 a 0xff); (green – verde);
b – número de 0 a 255 (ou em hexa 0x00 a 0xff); (blue – azul);
Obs. da combinação dessas três cores são geradas as demais.
Dica – Existem algumas cores pre-definidas, veja na seção Constantes reservadas – Cores.
Retornos:
Cor – (numero) cor criada a partir da combinação rgb.
6 – Ret, Err = ppdf.ad_retangulo(pdf, pag, X, Y, larg, alt, larg_borda, cor);
Insere um retângulo.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
larg – (número) largura do retângulo.
alt – (número) altura do retângulo.
larg_borda – (número) largura do traço da borda.
cor – (número) cor.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
7 – Ret, Err = ppdf.ad_ppm(pdf, pag, X, Y, larg, alt, Nome);
Insere uma imagem .ppm.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
larg – (número) largura.
alt – (número) altura.
Nome – (string) caminho do arquivo ppm. (relativo se estiver na mesma pasta ou absoluto);
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
8 – Ret, Err = ppdf.ad_jpeg(pdf, pag, X, Y, larg, alt, Nome);
Insere uma imagem .jpeg.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
larg – (número) largura.
alt – (número) altura.
Nome – (string) caminho do arquivo .jpeg (ou .jpg, .JPG). (relativo se estiver na mesma pasta ou absoluto);
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
9 – Ret, Err = ppdf.ad_codigo_barra(pdf, pag,tipo, X, Y, larg, alt, BarTxt, Cor);
Insere um código de barra. (Suporte para 128A apenas);
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
tipo – (número) ppdf.CODIGOBARRA_128A = 0; tipo de código de barra (Suportado apenas 128A);
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
larg – (número) largura.
alt – (número) altura.
BarTxt – (string) Texto a ser codificado no código de barras.
(Obs.: 128 A: Podem ser codificadas letras maiúsculas, números, caracteres de pontuação e caracteres especiais.) Ex.: ‘AA233B55L’
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
10 – Ret, Err = ppdf.ad_texto(pdf,pag,txt,tam_fonte,x,y,cor);
Insere um texto.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
txt – (string) texto a ser inserido.
tam_fonte – (número) tamanho da fonte.
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
cor – (número) cor. (veja a função ppdf.rgb(r,g,b);)
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
11 – Ret, Err = ppdf.ad_texto(pdf,pag,aX,aY,bX,bY,larg_lin,cor);
Insere um texto.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
aX – (número) posição X do início da linha. (coluna)
aY – (número) posição Y do início da linha. (linha);
bX – (número) posição X do final da linha(coluna);
bY – (número) posição Y do final da linha (linha);
cor – (número) cor. (veja a função ppdf.rgb(r,g,b);)
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
12 – Ret, Err = ppdf.ad_retangulo_preenchido(pdf,pag,x,y,larg,alt,larg_borda,cor);
Insere um retângulo com preenchimento de cor.
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
X – (número) posição X (coluna);
Y – (número) posição Y (linha);
larg – (número) largura do retângulo.
alt – (número) altura do retângulo.
larg_borda – (número) largura do traço da borda.
cor – (número) cor.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
13 – Ret, Err = ppdf.ad_marcador (pdf,page,id,nome);
Cria um marcador de página. (O painel esquerdo do leitor de pdf);
Parâmetros:
pdf – objeto pdf criado previamente.
pag – objeto página criado anteriormente ou nulo para página atual.
id – um número identificador da página ou -1 para a página atual.
nome – (string) nome que será visualizado no marcador.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
14 – Ret, Err = ppdf.salve (pdf, nome);
Salva o arquivo pdf.
Parâmetros:
pdf – objeto pdf criado previamente.
nome – (string) nome do arquivo a ser salvo. Ex.: ‘teste.pdf’
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
15 – Ret, Err = ppdf.destrua (pdf);
Destrói os objetos criados e libera a memória.
Parâmetros:
pdf – objeto pdf criado previamente.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
16 – Str_err = ppdf.obt_erro(pdf);
Pega a descrição de erro.
Parâmetros:
pdf – objeto pdf criado previamente.
Retornos:
Str_err – string em caso de erro, ou nulo se não houver erro.
17 – Larg, Err = ppdf.obt_larg_texto_na_fonte (pdf, Nome_fonte, txt, tam);
Obtém largura do texto txt em uma fonte passada como parâmetro no tamanho tam.
Parâmetros:
pdf – objeto pdf criado previamente.
Nome_fonte – o nome da fonte. (Veja acima na relação de fontes compatíveis no item 2);
txt – (string) o texto a ser examinado a largura.
tam – (número) Tamanho da fonte.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
18 – Larg, Err = ppdf.obt_altura (pdf);
Obtém a altura da página.
Parâmetros:
pdf – objeto pdf criado previamente.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
19 – Larg, Err = ppdf.obt_largura(pdf);
Obtém a largura da página.
Parâmetros:
pdf – objeto pdf criado previamente.
Retornos:
Ret – nulo em caso de erro ou verdadeiro.
Err – (número) código de erro.
20 – Constante predefinidas:
20.1 – Largura e Altura da página: //é possível facilmente criar novos valores padrões.
Formato carta: ppdf.LARG_CARTA; ppdf.ALT_CARTA;
Formato A4: ppdf.LARG_A4; ppdf.ALT_A4;
20.2 – Tipo código de barra:
ppdf.CODIGOBARRA_128A
20.3 – Cores:
ppdf.VERMELHO; ppdf.VERMELHOESCURO; ppdf.VERDELIMAO ppdf.VERDE; ppdf.VERDEESCURO; ppdf.AZUL; ppdf.AZULESCURO; ppdf.AMARELO; ppdf.PRETO; ppdf.DOURADO; ppdf.CINZA; ppdf.CINZA2; ppdf.CINZA3; ppdf.CINZA4; ppdf.CINZA5; ppdf.ROXO; ppdf.LARANJA; ppdf.LARANJAESCURO; ppdf.CIANO; ppdf.CIANOESCURO; ppdf.TURQUESA; ppdf.TURQUESAESCURO; ppdf.MARROM; ppdf.MARROMESCURO; ppdf.MAGENTA; ppdf.ROSA; ppdf.ROSA2; ppdf.ROSA3; |
Para usar outras cores busque na internet por tabela de cor html. Use o formato hexa trocando o # por 0x ex.: vermelho: #ff0000 → 0xFF0000. Ou use os números rgb com a função ppdf.rgb(r,g,b);
Para mais detalhes veja os exemplos na pasta Exemplos.
FIM