Ola pessoal, inspirados no Gmail Motion, resolvemos brincar tambem no 1o de Abril. E nao foi apenas essa brincadeira, como voces 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 alguem visitar seu orkut;Autocompletadores: Que tal trabalhar no Google completando as palavras digitadas pelos usuarios no buscador;Spectacle: Monoculo da Toshiba que exibe imagens em tres dimensoes.Mas, como somos um projeto serio, assim como o Google, esclarecemos entao que tudo nao passou de uma brincadeira. O projeto segue como antes, com os mesmos desenvolvedores e com o mesmo proposito.O interessante nessa brincadeira foi saber que muitos tenham acreditado e nao tenham se espantado com a noticia, pois nos disseram que ja era de se esperar pela qualidade que o projeto possui. Ficamos muito contentes com este fato, e a realidade e que tambem achamos que o projeto realmente tem esse merito, mas e gracas a colaboracao de todos da comunidade jrimum e nao so dos desenvolvedores.A nova fase do projeto promete, e e capaz de no proximo ano confiarem que ele sera usado na NASA :-) 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 Economica Federal: #54 - Cobranca Sem Registro Eletronica SICOB (Nosso Numero 16 posicoes) Novas formas de uso da API:#org.jrimum.bopepo.view.BoletoViewerEstilo um pouco mais fluente, mas mantendo os mesmos metodos:byte[] pdf = BoletoViewer.create(boleto).setTemplate(inBytes).setPdfFullCompression(false).getPdfAsByteArray();Mais flexibilidade na definicao de templates atraves do Overloading do metodo setTemplate:setTemplate(byte[] template)setTemplate(URL templateUrl)setTemplate(File templateFile)setTemplate(String templatePath)setTemplate(InputStream templateInput)Nova opcao de definicao de compressao do PDF atraves do metodo: setPdfFullCompression(false)Por padrao, o atributo "pdfFullCompression" e true. Ao definir esse atributo com false, os boletos gerados estarao 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 sao menores em tamanho. Logo, ao utilizar o modelo de PDF 1.4, os arquivos nao terao tamanhos otimizados, porem, poderao 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 padrao ou informando o template personalizado. Alguns metodos: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);Ha tambem outras composicoes, como no caso de conjuntos de boletos com templates diferentes. Nesse tipo de utilizacao deseja-se processar varias combinacoes, onde cada lista de boleto esta relacionada a um template diferente em bytes: File groupInOnePdfWithTemplates(Collection<Entry<byte[], List<Boleto>>>, File); Nova classe codigo de barras:#org.jrimum.bopepo.pdf.CodigoDeBarrasString cod = "85690000012457000062011022520112300333888400";Image img = CodigoDeBarras.valueOf(cod).toImage();Esta classe permite a geracao da imagem do codigo de barras a partir do codigo numerico e nao a partir de um titulo, como e atualmente em org.jrimum.bopepo.CodigoDeBarras. Lembrando que cada classe tem um proposito diferente: enquanto uma e usada para compor um codigo numerico, a outra e usada para compor imagens a partir desses codigos. Nova classe