try {
this.writer.write(400, LINHA2, formatter.valueToString(boleto
.getValorBoleto().doubleValue()));
} catch (NumberFormatException e) {
throw new CriacaoBoletoException(
"Erro na formatação do valor do boleto", e);
} catch (ParseException e) {
throw new CriacaoBoletoException(
"Erro na formatação do valor do boleto", e);
}
this.writer.write(5, LINHA3, boleto.getEmissor()
.getAgenciaFormatado()
+ "-"
+ boleto.getEmissor().getDvAgencia()
+ " / "
+ boleto.getBanco().getContaCorrenteDoEmissorFormatado(
boleto.getEmissor())
+ "-"
+ boleto.getEmissor().getDvContaCorrente());
this.writer.write(146, LINHA3, boleto.getBanco()
.getNossoNumeroDoEmissorFormatado(boleto.getEmissor()));
this.writer.writeBold(125, LINHA4, boleto.getBanco()
.getNumeroFormatado());
LinhaDigitavelGenerator linhaDigitavelGenerator = new LinhaDigitavelGenerator();
this.writer.writeBold(175, LINHA4, linhaDigitavelGenerator
.geraLinhaDigitavelPara(boleto));
for (int i = 0; i < boleto.getLocaisDePagamento().size(); i++) {
this.writer.write(5, LINHA5 - (i - 1) * 10, boleto
.getLocaisDePagamento().get(i));
}
this.writer.write(425, LINHA5, formatDate(boleto.getDatas()
.getVencimento()));
this.writer.write(5, LINHA6, boleto.getEmissor().getCedente());
this.writer.write(420, LINHA6, boleto.getEmissor()
.getAgenciaFormatado()
+ " - "
+ boleto.getEmissor().getDvAgencia()
+ " / "
+ boleto.getBanco().getContaCorrenteDoEmissorFormatado(
boleto.getEmissor())
+ "-"
+ boleto.getEmissor().getDvContaCorrente());
this.writer.write(5, LINHA7, formatDate(boleto.getDatas()
.getDocumento()));
this.writer.write(70, LINHA7,
!boleto.getNoDocumento().equals("") ? boleto
.getNoDocumentoFormatado() : boleto.getBanco()
.getNossoNumeroDoEmissorFormatado(
boleto.getEmissor()));
this.writer.write(180, LINHA7, boleto.getEspecieDocumento());
this.writer.write(250, LINHA7, boleto.getAceite() ? "S" : "N");
this.writer.write(300, LINHA7, formatDate(boleto.getDatas()
.getProcessamento()));
this.writer.write(410, LINHA7, boleto.getEmissor().getCarteira()
+ " / "
+ boleto.getBanco().getNossoNumeroDoEmissorFormatado(
boleto.getEmissor()));
this.writer.write(122, LINHA8, boleto.getBanco()
.getCarteiraDoEmissorFormatado(boleto.getEmissor()));
this.writer.write(190, LINHA8, boleto.getEspecieMoeda());
try {
this.writer.write(430, LINHA8, formatter.valueToString(boleto
.getValorBoleto().doubleValue()));
} catch (NumberFormatException e) {
throw new CriacaoBoletoException(
"Erro na formatação do valor do boleto", e);
} catch (ParseException e) {
throw new CriacaoBoletoException(
"Erro na formatação do valor do boleto", e);
}
for (int i = 0; i < boleto.getInstrucoes().size(); i++) {
this.writer.write(5, LINHA9 - i * 10, boleto.getInstrucoes()
.get(i));
}
this.writer.write(5, LINHA10, boleto.getEmissor().getCedente());
this.writer.write(100, LINHA11, boleto.getSacado().getNome() + " "
+ boleto.getSacado().getCpf());
this.writer.write(100, LINHA12, boleto.getSacado().getEndereco());
this.writer.write(100, LINHA13, boleto.getSacado().getCep() + " "
+ boleto.getSacado().getBairro() + " - "
+ boleto.getSacado().getCidade() + " "
+ boleto.getSacado().getUf());
Image imagemDoCodigoDeBarras = BarcodeGenerator
.generateBarcodeFor(boleto.getBanco()
.geraCodigoDeBarrasPara(boleto));
try {
this.writer.writeImage(40, 10, toBufferedImage(
imagemDoCodigoDeBarras, BufferedImage.TYPE_INT_ARGB),
imagemDoCodigoDeBarras.getWidth(null),
imagemDoCodigoDeBarras.getHeight(null));
} catch (IOException e) {
throw new CriacaoBoletoException(
"Erro na geração do código de barras", e);
}
firstPage = false;
}
return this.writer.toInputStream();