Escrevendo em PDF usando “C”

Iniciado por C00L3R, 12 de Junho , 2009, 10:25:48 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

C00L3R

Um salve para os leitores do darkers,neste artigo resolvi estudar algo meio difícil de se achar em Blogs
ou sites que contem artigos,se trata da biblioteca "Cairo" muito famosa para os programadores em "python"
e "Perl" por tratar imagens e vetorizar.porem neste artigo vou usar "Linguagem C" ala K&R para fazer
tal feito em outras linguagens como perl,ruby e python seria bem mais fácil por isso nem vou explicar...

Antes de mais nada esta Dica só foi possível ser feita graças a ótima documentação do cairo
pois não encontrei nenhum material do mesmo em pt :(

continuando fiz um programa que pega um array com palavras e escreva num PDF,para implementar funções apartir desta source é facil como abrir um TXT e escrever seu conteúdo num PDF ou mesmo
abrir um banco de dados e imprimir seu conteúdo nele etc...

Antes de mais nada verifique se você tem as bibliotecas para o feito

vamos a source ,já esta toda comentada basta ler para pegar o esquema

//Exemplo de como escrever em PDF usando "C ansi"
//Author: Antonio Cooler
//visite BOTECOUNIX.COM.BR
//para compilar faça "gcc -o example `pkg-config --cflags --libs gtk+-2.0` example.c"
//bibliotecas padrão do cairo para escrita num PDF
#include 'cairo/cairo.h'
#include 'cairo/cairo-pdf.h'

int main() {
//definindo variaveis
 float position;
 int i;
 char *banner[] = {
 "Programa simples escreve em pdf",
 "coded by Cooler",
 "isso é um teste",
 "de boa",
 "esta",
 "rolando nosso programa",
 "este é o",
 "fim dele ",
};
//definindo ponteiros surface e cr
 cairo_surface_t *surface;
 cairo_t *cr;
//definindo nome do arquivo
 surface = cairo_pdf_surface_create("pdffile.pdf", 504, 648);
//defindo a função create do cairo
 cr = cairo_create(surface);
//definindo cor da fonte,aqui usado padrão RGB(red,green,blue) definimos o "blue" setamos para 255
 cairo_set_source_rgb(cr, 0, 0, 255);
//definindo tipo da fonte
 cairo_select_font_face (cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
//definindo tamanho da fonte
 cairo_set_font_size (cr, 20.0);
//definindo posição inicial da fonte
 position=50.0;
//Loop para ir escrevendo e pulando a linha para cada bloco do vetor
for(i=0; i<=7; i++) {
 cairo_move_to(cr, 10.0, position);
 cairo_show_text(cr, banner[i]);
//variavel position sempre atribui o tamanho da fonte inicial no caso 20
//assim temos uma lógica simples fazendo pular a linha
 position+=20;
}
 cairo_show_page(cr);
//destruindo ponteiros definidos
 cairo_surface_destroy(surface);
 cairo_destroy(cr);

 return 0;
}

antes veja se instalou "cairo-dev" pelo apt ou ports...
agora vamos compilar,vou usar o "GCC" vide http://gcc.gnu.org/
gcc -o example `pkg-config –cflags –libs gtk+-2.0` example.c
executamos nosso programa e abrimos o arquivo "pdffile.pdf" e pronto veja que foi tudo escrito

a dica acaba por aqui a lib cairo é muito poderosa isso só foi uma dica de uso de uma
das milhares de funções desta maravilhosa lib.

blackwinner

Não conhecia a cairo.. ta ae.. legal mesmo cara. =]
sergaralho.blogspot.com --> a informação como ela deve ser.. pura!