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