iText: Gerando PDF’s em Java ou C#

Recentemente em alguns estudos me deparei com a biblioteca iText, uma API para geração de PDF’s que pode ser usada em JAva ou C#.

Essa API é gratuita e Open source, podendo ser baixada no seguinte endereço: itextpdf.com, eu baixei a versão 5.4.3 (itextpdf-5.4.3.jar).

Crie um projeto Java (Java Project) no Eclipse (estou usando a versão Juno). Clique com o botão direito em cima do projeto e vá em Build Path -> Configure Build Path. Vá na aba Libraries e clique no botão “ADd External JARs”. Selecione o JAR do iText e clique em OK.

Em Source crie uma classe qualquer (eu coloquei o nome de ImpressaoPDF.java). Abaixo colocarei o código fonte e em seguida explicações sobre algumas linhas:


import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class ImpressaoPdf {
public static void main(String[] args) throws Exception {
Document doc = null;
FileOutputStream os = null;
try {
doc = new Document(PageSize.A4);
os = new FileOutputStream("arquivo.pdf");
PdfWriter.getInstance(doc, os);
doc.open();
Font f = new Font(FontFamily.COURIER, 20, Font.BOLD);
Paragraph p = new Paragraph("Meu primeiro arquivo PDF!", f);
p.setAlignment(Element.ALIGN_CENTER);
doc.add(p);
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (doc != null) {
doc.close();
}
if (os != null) {
os.close();
}
}
}
}

Document representa o documento PDF a ser gerado, por isso é criado logo no início do código.
É preciso “abrir” o documento para poder escrever nele, isso é feito no trecho “doc.open();”, após isso é possível adicionar texto ao documento, como a configuração de fonte, criação de parágrafo e alinhamento:


Font f = new Font(FontFamily.COURIER, 20, Font.BOLD);
Paragraph p = new Paragraph("Meu primeiro arquivo PDF!", f);
p.setAlignment(Element.ALIGN_CENTER);
doc.add(p);

E por fim é preciso fechar o Document e o OutPutStream.
Após isso é só rodar o projeto como Java Application mesmo, o arquivo será gerado na pasta raiz do projeto dentro do seu workspace.

Enfim, existem inúmeros posts na internet sobre a biblioteca e eu quis contribuir com mais um, além da própria documentação presente no site.

É isso! []s

Mudanças… de novo, outra vez, novamente!!

Pausa no blog por muito tempo.

Por um bom tempo eu estava sem saco mesmo de postar qualquer coisa.

E depois o motivo foram as recentes mudanças em minha vida.

Um ano e meio de moradia em Curitiba e estou novamente voltando para Belém. Aprovado e convocado em um recente concurso público do Estado resolvi voltar para a cidade das mangueiras. Muita gente me crucificará, julgará, e por aí vai. Tenho meus motivos, tenho minhas convicções. Volto para Belém com muita vontade de ajudar a melhorar a cidade e e esse imenso Estado, talvez em minha função atual isso possa inclusive vir a ter um efeito mais palpável. E claro sem nunca abandonar meu espírito crítico.

Espero voltar a postar em breve com mais frequência.

Questão de Engenharia de Software – Conceitos

Hoje ao resolver algumas questões sobre Engenharia de Software me deparei com a seguinte questão da prova da CGU em 2008:

43. A Engenharia de Software é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção do mesmo. A Engenharia de Software adota métodos de engenharia de software que:
A) são um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software.
B) são uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica.
C) são abordagens de estruturadas para o desenvolvimento de software, que incluem modelos de sistemas,
notações, regras, recomendações de projetos e diretrizes de processos
D) se ocupam da teoria e dos fundamentos de desenvolvimento de software.
E) se ocupam de todos os aspectos relacionados ao desenvolvimento de sistemas com base em computadores,
incluindo hardware, software e engenharia de processos.

Eu errei a questão por não me preocupar muito em lembrar dos conceitos iniciais de Engenharia de Software, então vamos a eles:
– Engenharia de Sistemas: diz respeito aos aspectos do desenvolvimento e da evolução de sistemas complexos, nos quais o software desempenha um papel importante.
– Engenharia de Software: é a disciplica relacionada a produção de software.
– Software: são os programas de computador e a documentação associada.
– Processo de Software: é um conjunto de atividades, cuja meta é o desenvolvimento ou a evolução do software.
– Modelo de Processo de Software: é uma representação simplificada de um processo de software, apresentada a partir de uma perspectiva específica.
– Métodos de Engenharia de Software: são abordagens estruturadas para o desenvolvimento de software, que incluem modelos de sistemas, notações, regras, recomendações de projetos e diretrizes de processos.

Agora fica fácil. Gabarito é a letra C.

É isso!

Mnemônicos – ITILv3

Bom, após finalizado o primeiro ciclo de estudos sobre ITIL desenvolvi alguns “mnemônicos” para gravar os processos. Lembrando que algumas questões de concurso são facilmente resolvidas somente sabendo o nome do processo e em qual estágio ele está inserido. Então vamos lá!

Estágios ou livros do ciclo de vida:

EDTOM (Estratégia, Desenho, Transição, Operação e Melhoria Contínua)

Obs.: Estratégia está bem no centro do ciclo de vida, é ele quem define estratégias da organização, está em um nível mais alto. O Desenho refina os requisitos de negócio em relação aos serviços de TI. A Transição é tático/operacional colocando os serviços em produção. A Operação é onde realmente nota-se a entrega de valor, que no ITIL se constitui em utilidade + garantia, pois é na operação, no dia a dia da empresa que percebe-se a qualidade dos serviços. Já a Melhoria Contínua atua em todos os estágios buscando sempre a máxima qualidade nos serviços de TI da organização.

– Estratégia do Serviço (Service Strategy):

Est Port Dem Fin (Geração da estratégia, Gerenciamento de Portfólio, Gerenciamento de Demandas e Gerenciamento Financeiro).

– Desenho do Serviço (Service Design):

Cata Nível SI For CDC (Gerenciamento do Catálogo de Serviços, Gerenciamento de Nível de Serviço, Gerenciamento de Segurança da Informação, Gerenciamento de Fornecedores, Gerenciamento de Capacidade, Gerenciamento de Disponibilidade e Gerenciamento de Continuidade).

– Transição do Serviço (Service Transition):

Obs.: Não tem mnemônico hehe, eu decorei os processos

Gerenciamento de Mudanças, Gerenciamento de Configuração, Gerenciamento de Liberação, Validação, Avaliação e Testes, Gestão do Conhecimento, Planejamento e Suporte de Transição)

– Operação do Serviço (Service Operation):

In Eve CumPro Acesso – A INEVE CUMPROU (e não “comprou”) o ACESSO dela. (Gerenciamento de Incidentes, Gerenciamento de Eventos, Cumprimento de Requisições, Gerenciamento de Problemas, Gerenciamento de Acesso).

No Service Operation temos as funções do ITIL (JAMAIS confundir com processos):
SEDE GATO (Service Desk, Gerenciamento de Aplicativos, Gerenciamento Técnico e Gerenciamento de Operações).

– Melhoria Conítua do Serviço (Continual Service Improvement):

7 Mensura R (Melhoria em 7 passos, Mensuração de Serviços e Relatório de Serviços)

É isso! Esses mnemônicos criei para mim, mas se servir para alguém ótimo, de qualquer forma o ideal é sempre tentar algo que você consiga decorar e gravar, infelizmente a decoreba é presente em vários concursos e não tem como fugir!

Edição de arquivos .ctp no Eclipse

Para quem usa o CakePHP como framework de desenvolvimento PHP e o Eclipse como IDE fica extremamente chato ter que alterar os arquivos .ctp que são reconhecidos como texto pelo Eclipse. Mas é possível alterar isso para ele interpretar os arquivos .ctp como arquivos PHP. Os passos são:

– Abra o Eclipse
– Clique em Window e depois em Preferences
– Clique em General na lista que é mostrada
– Abaixo de General clique em Content-Types
– No painel direito clique em Text para expandir
– Selecione PHP Content-Types
– Abaixo serão mostradas algumas extensões, como *.php,*.php3,*.php4, agora clique em Add e digite *.ctp no campo de entrada.
– Clique em Ok e depois em Ok novamente.

É necessário fechar os arquivos .ctp que estejam abertos e depois… SUCESSO!