Bem-vindo: Qua, 27 de Novembro 2024, 1:17 Pesquisa avançada

Ajuda com impressão em programas em C

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

Re: Ajuda com impressão em programas em C

Mensagempor ghost66 » Qui, 29 de Agosto 2013, 14:23

Leleo,

Eu acabei de compilar e não tive problemas. Eu uso o Ubuntu 12.05 e instalei a biblioteca com sudo apt-get install libcairo2-dev, e tentei compilar com o comando que foi pedido no exemplo gcc -Wall -o nome_arquivo_executavel nome_arquivo_fonte.c `pkg-config --cflags --libs cairo` `cups-config --cflags --libs` ai tive o erro que era necessário instalar o libcups2-dev com sudo apt-get install libcups2-dev . Instalei e o gcc o compilou sem problemas, só não testei pois como disse estou sem impressora.

Abraços
Avatar do usuário
ghost66
 
Mensagens: 4
Registrado em: 21 Dezembro, 2012

Re: Ajuda com impressão em programas em C

Mensagempor leleo » Qui, 29 de Agosto 2013, 14:32

ghost66, irei fazer isso agora. Vou testar. Acabou de chegar minha impressora! Vamos testar!!!
Gigabyte 990FX-UD3 - 2x 4GB Corsair 1600 MHz - AMD FX-8150 Bulldozer 3.60 GHz - AMD Radeon HD 6570 - Samsung 320GB - Seagate 1TB - Philips 215VW 21.5' - Ubuntu 12.04 - Windows 8 Pro
Avatar do usuário
leleo
 
Mensagens: 84
Registrado em: 12 Junho, 2011
Localização: Vargem Grande do Sul, São Paulo / Brasil

Re: Ajuda com impressão em programas em C

Mensagempor ghost66 » Qui, 29 de Agosto 2013, 18:44

Leleo,

Como não possuo impressora eu testei o código anterior gerando um PDF através de um aplicativo chamado cups-pdf que instalei com sudo apt-get install cups-pdf
este aplicativo instala uma impressora virtual no Ubuntu que automaticamente o converte para
PDF e coloca este arquivo por default na pasta /home/usuario/PDF , você o encontra aqui
http://www.cups-pdf.de/ .

Você pode acessar a interface web do cups com http://localhost:631/ no browser , antes disso vc deve adicionar um usuário aos administradores do Cups com sudo usermod -aG lpadmin usuario senão vc não terá permissão como administrador.

Depois que vc instala o cups-pdf , e se vc não tiver nenhuma impressora no seu sistema, o cups-pdf instala uma impressora com o nome PDF, vc pode ver isto ao adicionar em qualquer lugar do código em c a linha :
printf("The default destination is %s\n", cupsGetDefault());
o método cupsGetDefault() retorna a impressora default que agora é PDF.

Obtive bastante infos nos links a seguir :

http://refspecs.linuxfoundation.org/LSB_3.2.0/LSB-Printing/LSB-Printing/libcups.cupsgetdefault.1.html

http://www.cups.org/documentation.php/api-cups.html#cupsGetDefault

http://refspecs.linuxfoundation.org/LSB_3.2.0/LSB-Printing/LSB-Printing/libcups.cupsprintfile.1.html

http://www.cups.org/documentation.php/api-cups.html#cupsGetDefault

http://doc.mpv.ru/cups/spm.html#cupsGetDefault

http://www.cups-pdf.de/


Boa sorte
Avatar do usuário
ghost66
 
Mensagens: 4
Registrado em: 21 Dezembro, 2012

Re: Ajuda com impressão em programas em C

Mensagempor leleo » Qui, 29 de Agosto 2013, 21:32

Consegui fazer o CUPS funcionar, consegui gerar o pdf através do comando por terminal apontando um arquivo...
Agora na hora de usa-lo no código em C, ele retorna o seguinte erro:

Código: Selecionar todos
/tmp/ccwZUEaz.o: na função `main':
teste.c:(.text+0xa): referência indefinida para `cupsGetDefault'
collect2: erro: ld returned 1 exit status


Não sei se pode ser algum erro na hora de compilar o CUPS ou se pode ser alguma outra coisa...
Em relação ao CUPS, eu consegui acessar o painel dele via WEB e ver as impressoras.
Estou meio corrido aqui na loja, estarei vendo isso hoje a noite assim que chegar da faculdade.
Gigabyte 990FX-UD3 - 2x 4GB Corsair 1600 MHz - AMD FX-8150 Bulldozer 3.60 GHz - AMD Radeon HD 6570 - Samsung 320GB - Seagate 1TB - Philips 215VW 21.5' - Ubuntu 12.04 - Windows 8 Pro
Avatar do usuário
leleo
 
Mensagens: 84
Registrado em: 12 Junho, 2011
Localização: Vargem Grande do Sul, São Paulo / Brasil

Re: Ajuda com impressão em programas em C

Mensagempor ghost66 » Qui, 29 de Agosto 2013, 23:28

Isso me parece um erro de linkagem, no comando
gcc -Wall -o arquivo_executavel arquivo_fonte.c 'pkg-config --cflags --libs cairo' 'cups-config --cflags --libs'

O comando pkg-config é uma ferramenta de programação que auxilia o gcc a trabalhar
com bibliotecas e na linkagem , vc pode aprender mais aqui http://en.wikipedia.org/wiki/Pkg-config e aqui http://www.freedesktop.org/wiki/Software/pkg-config/ .

Quando você instala uma biblioteca (automaticamente através do uso do RPM, deb, ou outro sistema de empacotamento binário ou compilado através do arquivo fonte da biblioteca), um arquivo .pc deverá ser incluido em um diretório com outros arquivos .pc , o diretório exato depende do seu sistema.

Se você digitar locate pkgconfig no prompt do sistema você terá uma listagem completa da localização dos arquivos .pc, observe que deverá aparecer aqui a biblioteca cairo, no meu sistema (64 bits) a localização é /usr/lib/x86_64-linux-gnu/pkgconfig/cairo.pc

Já o comando cups-config --cflags --libs utiliza o cups-config que é um programa utilitário do CUPS. Ele auxilia o gcc na compilação e linkagem. No meu a saida do comando é :

-lcups -L/usr/lib/x86_64-linux-gnu -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lgnutls -L/lib/x86_64-linux-gnu -lgcrypt -lz -lpthread -lcrypt -lm


Abraços
Avatar do usuário
ghost66
 
Mensagens: 4
Registrado em: 21 Dezembro, 2012

Anterior

Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes