//basico
local fpdf = inclua'fpdf';
local jpg = inclua'jpginfo';
local pdf = fpdf:novo();
pdf:AdPagina();
pdf:SetFont('Arial','B',12)
// Background color
pdf:SetFillColor(200,220,255)
// Title
pdf:Cell(0,6,"Exemplo de imagem",0,1,'C',verdadeiro)
// Line quebre
pdf:Ln(4)
pdf:Cell(4,10,'Olá como vai você?');
pdf:Imagem("casal.jpeg",5,30,100,100);//insere a imagem
pdf:AdPagina();
local info = jpg.info('prisma.jpg');
pdf:SetFont('Arial','B',12)
pdf:SetFillColor(200,220,255);
pdf:Cell(0,6,"prisma.jpg " .. info.larg ..'x'.. info.alt,0,1,'L',verdadeiro);
pdf:Imagem('prisma.jpg',5,22,info.larg/6, info.alt/6);
//--------------------------------------------
pdf:AdPagina();
pdf:SetFont('Arial','B',12)
// Background color
pdf:SetFillColor(200,220,255)
// Title
pdf:Cell(0,6,"Exemplo de imagem",0,1,'C',verdadeiro)
// Line quebre
pdf:Ln(4)
pdf:Cell(4,10,'Olá como vai você?');
pdf:Imagem("logo.png",5,30,100,100);//insere a imagem
pdf:Output("zzbasico.pdf"); //salva o arquivo pdf
local aes = inclua("aes");
//modos de encriptacao: aes.MODOECB, aes.MODOCBC, aes.MODOOFB, aes.MODOCFB
//tamanho senhas: aes.AES128, aes.AES192, aes.AES256
local senha = "asdfadsfaljaASDFASDFAsdfasd";
local txt = "Linguagem Prisma!!!";
local enc = aes.encripte(senha,txt, aes.AES256, aes.MODOCFB);
poe'---------------------------------\n\n';
imprima("ENC:", enc);
imprima("DEC:", aes.decripte(senha,enc,aes.AES256,aes.MODOCFB) );
Prisma 1.0.104 linguagemprisma.br4.biz (jul 2017)
> a = string.hex('olá');
> imprima(a)
6f6cc3a1
> b = string.dec_hex(a);
> imprima(b);
olá
> a = string.base64('olá');
> imprima(a);
b2zDoQ==
> b = string.dec_base64(a);
> imprima(b);
olá
>
funcao PasseFormularioWebKit(cadeia,chave)
cadeia = [[------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="ArquivoDeRetorno"; filename="4155_00154695_20180220_C240_00.ret"
Content-Type: application/octet-stream
rafael
------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="arquivo1"; filename="arquivo1.txt"
Content-Type: text/plain
Conteúdo do texto
------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="arquivo2"; filename="arquivo2.html"
Content-Type: text/html
<!DOCTYPE html><title>Conteúdo do html</title>
------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="conteudoJSON"
Content-Type: application/json
{"Objeto":"objetoJSON","chave":"Isso é uma tabela em prisma"}
------WebKitFormBoundaryDCkEyCJwVlL5BGuC--]]
pi = {};
pf = {};
x = 1;
pos_busca = 1; //ponto inicial da busca
se Metodo == 'GET' entao erro('____________________Metodo suportado somente: POST____________________') fim
enquanto 1 inicio //cria um laço infinito
linha = cadeia:separe('^(.-)[\r\n].*$') ou ''
se pos_busca ==1 e linha:procure('WebKitFormBoundary') entao
codigoinicial = linha
fim
se nao codigoinicial entao
quebre erro('____________________NÃO É WebKitFormBoundary____________________')
fim
pi[ x ] , pf [ x ] = string.procure ( cadeia , codigoinicial , pos_busca );
se pi[x] == nulo entao
//se o retorno de pi for nulo entao interrompe o laço
quebre
senao //senao salva uma nova posicao de busca
pos_busca = pf [ x ] + 1;
fim;
x = x + 1;
//fazendo o incremento de x
fim
Matriz = {}
para i = 1 , #pi-1 inicio
//imprima( 'Busca numero ' .. i .. ' : ' .. pi[ i ] .. ' - ' .. pf [ i ] );
conteudo = string.corte(cadeia,pf[i]+2,pi[i+1]-2)
linha = conteudo:separe('^(.-)[\r?\n].*$') ou ''
nome = conteudo:separe('name=["](.-)[";].*$') ou ''
nomedoarquivo = conteudo:separe('filename=["](.-)[";].*$') ou ''
disposicao = conteudo:separe('Content%-Disposition: (.-[^;\r?\n]+).*$') ou ''
conteudo = conteudo:corte(#linha+2,#conteudo)
linha = conteudo:separe('^(.-)[\r?\n].*$') ou ''
tipo_conteudo = conteudo:separe('Content%-Type: (.-[^;\r?\n]+).*$') ou ''
conteudo = conteudo:corte(#linha+2,#conteudo):apare()
linha = conteudo:separe('^(.-)[\r?\n?].*$')
se linha == ('') entao
conteudo = conteudo:corte(#linha+2,#conteudo):apare()
fim
Matriz[i] = {}
Matriz[i]['Nome'] = nome
Matriz[i]['NomeDoArquivo'] = nomedoarquivo
Matriz[i]['Disposicao'] = disposicao
Matriz[i]['TipoDeConteudo'] = tipo_conteudo
Matriz[i]['Conteudo'] = conteudo
fim
se chave entao
local valor = nulo
para i,v em pares(Matriz) inicio
se nao valor entao
valor = v.Nome == chave
se valor entao valor = v.Conteudo fim
fim
fim
retorne valor
senao
retorne Matriz
fim
fim
ArquivoDeRetorno = PasseFormularioWebKit(Formularios,'ArquivoDeRetorno')
conteudoJSON = PasseFormularioWebKit(Formularios,'conteudoJSON')
arquivo1 = PasseFormularioWebKit(Formularios,'arquivo1')
imprima(ArquivoDeRetorno)
imprima(conteudoJSON)
imprima(arquivo1)
local mat = mat;
local x = 0;
local funcao aleatorio()
x = x + 1;
local z = sis.tempo()+x;
mat.xrandonico(z);
fim
//teste:
para i = 1, 10 inicio
aleatorio(); //cria uma chave randômica.
imprima(mat.randonico()); //retorna o número aleatório baseado na chave randômica.
fim
mat.xrandonico( sis.tempo() );
local a1 = mat.randonico();
local a2 = mat.randonico();
imprima(a1,a2);
local valor = 200;
local result, err = concat { [[ <minha tag>]] , valor , [[</minha tag>]] } ;
se nao result entao imprima(err); sis.saia(1); fim
imprima(result);
//saída--> <minha tag>200</minha tag>
local funcao concat(t)
se tipo(t)<>'tabela' entao retorne falso, 'Espera-se uma tabela em vez de ' .. tipo(t) fim;
local convstring = convstring;
local s = '';
para i,v em pares(t) inicio
s = s .. convstring(v);
fim
retorne s;
fim