25 de abril de 2011

Snapshot 2011/04/15 - Novidades

Esse novo build do Bopepo traz algumas novidades interessantes que vale a pena ficar por dentro. Dentre elas temos:

Novo banco: #58 - Bancoob


Novo caso Caixa Econômica Federal: #54 - Cobrança Sem Registro Eletrônica SICOB (Nosso Número 16 posições)

 Novas formas de uso da API:

#org.jrimum.bopepo.view.BoletoViewer

Estilo um pouco mais fluente, mas mantendo os mesmos métodos:
byte[] pdf = BoletoViewer.create(boleto)
.setTemplate(inBytes)
.setPdfFullCompression(false)
.getPdfAsByteArray();

Mais flexibilidade na definição de templates através do Overloading do método setTemplate:
setTemplate(byte[] template)
setTemplate(URL templateUrl)
setTemplate(File templateFile)
setTemplate(String templatePath)
setTemplate(InputStream templateInput)

Nova opção de definição de compressão do PDF através do método:
setPdfFullCompression(false)

Por padrão, o atributo "pdfFullCompression" é true. Ao definir esse atributo com false, os boletos gerados estarão no modelo de documento PDF 1.4, ou seja, Acrobat Reader 5 ou superior. O "Full compression" foi introduzido no modelo de documento de PDF 1.5 (Acrobat Reader 6 ou superior) e como o termo indica, os arquivos gerados são menores em tamanho. Logo, ao utilizar o modelo de PDF 1.4, os arquivos não terão tamanhos otimizados, porém, poderão ser visualizados com qualquer programa similar ao Acrobat Reader 5 ou superior.

Novas formas de processamento em lote com retorno em byte ou file. Tanto pode-se processar boletos com template padrão ou informando o template personalizado. Alguns métodos:
byte[] groupInOnePDF(List<Boleto>);
byte[] groupInOnePdfWithTemplate(List<Boleto>, URL);
File groupInOnePdfWithTemplate(List<Boleto>, File, File);
List<File> onePerPDF(List<Boleto>, File);
List<byte[]> onePerPDFWithTemplate(List<Boleto>, InputStream);

Há também outras composições, como no caso de conjuntos de boletos com templates diferentes. Nesse tipo de utilização deseja-se processar várias combinações, onde cada lista de boleto está relacionada a um template diferente em bytes:
File groupInOnePdfWithTemplates(Collection<Entry<byte[], List<Boleto>>>, File);

 Nova classe código de barras:

#org.jrimum.bopepo.pdf.CodigoDeBarras
String cod = "85690000012457000062011022520112300333888400";
Image img = CodigoDeBarras.valueOf(cod).toImage();
Esta classe permite a geração da imagem do código de barras a partir do código numérico e não a partir de um título, como é atualmente em org.jrimum.bopepo.CodigoDeBarras. Lembrando que cada classe tem um propósito diferente: enquanto uma e usada para compor um código numérico, a outra é usada para compor imagens a partir desses códigos.

 Nova classe / funcionalidade "PdfDocMix":

#org.jrimum.bopepo.pdf.PdfDocMix

Com essa nova classe é possível utilizar a mesma técnica da geração de boletos utilizando templates para outros tipos de documentos. Por exemplo: Fichas médicas, declarações para setor pessoal, pedidos de vendas, recibos, etc.

Assim, desde que se tenha um template já "desenhado", você poderá fazer algo como:
File fichaMedica = PdfDocMix.createWithTemplate("TemplateFichaMedica.pdf")
.put("TxtNomePaciente", "Fulano da silva")
.put("TxtDataDeNascimento", "21/04/1980")
.put("ImgFoto", new ImageIcon("foto3x4.png").getImage())
.toFile("FichaMedica.pdf");

Agradecimentos

Gostaríamos de agradecer a todas as colaborações no jrimum-community. E principalmente as mais relacionadas, threads:


DOWNLOAD

* JRimum-Bopepo-SNAPSHOT-20110415-bin.jar

* JRimum-Bopepo-SNAPSHOT-20110415-src.jar

5 de abril de 2011

Rááá... 1º de Abril!!


Olá pessoal, inspirados no Gmail Motion, resolvemos brincar também no 1º de Abril. E não foi apenas essa brincadeira, como vocês podem ver:

  • Gmail Motion: Controle o gmail com seu corpo;
  • Chromercise: Exercice seus dedos para ter melhor produtividade com o Chrome;
  • YouTube: Virais de 1911!
  • Contoso: Google adquire parceira da Microsoft;
  • Earkut: Seja avisado por um dispositivo na orelha, quando alguém visitar seu orkut;
  • Autocompletadores: Que tal trabalhar no Google completando as palavras digitadas pelos usuários no buscador;
  • Spectacle: Monóculo da Toshiba que exibe imagens em três dimensões.
Mas, como somos um projeto sério, assim como o Google, esclarecemos então que tudo não passou de uma brincadeira. O projeto segue como antes, com os mesmos desenvolvedores e com o mesmo propósito.

O interessante nessa brincadeira  foi saber  que muitos tenham acreditado e não tenham se espantado com a notícia, pois nos disseram que já era de se esperar pela qualidade que o projeto possui. 

Ficamos muito contentes com este fato, e a realidade é que também achamos que o projeto realmente tem esse mérito, mas é graças a colaboração de todos da comunidade jrimum e não só dos desenvolvedores.

A nova fase do projeto promete, e é capaz de no próximo ano confiarem que ele será usado na NASA :-) 

1 de abril de 2011

Google compra direitos do projeto JRimum

Após negociações com FEBRABAN e outros bancos, a Google fecha acordo e compra diretos do projeto .

Segundo o porta voz da Google, a intenção é colocar um serviço de impressão de boletos pelo Gmail e geração de arquivos bancários no Google Docs.

A partir do diz 2 de Abril a logo do projeto será mudada para:


Em nota a impressa, a Google informou que o primeiro banco a ter seus boletos gerados pelo Gmail será o Banco do Brasil.