Dificuldade na geração de relatórios em pdf com Jasper e iText

Olá pessoal,

Tenho um relatório criado no iReports, e que quero apresentar em pdf na minha aplicação web. O problema é que preciso adicionar um código de barras em determinado ponto desse relatório. Esse código de barras está sendo gerado, corretamente, através da classe BarcodeInter25 do iText.

O problema é na hora de inserir em runtime esse código de barras no relatório já desenhado. Tentei isso de duas formas.

A primeira:

        ServletOutputStream out = response.getOutputStream();
        Document document = new Document();
        
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
        try {
            
            PdfWriter writer = PdfWriter.getInstance(document, baos);
            
            document.open();
            
            PdfReader reader = new PdfReader("/caminho/meurelatorio.pdf");
            PdfImportedPage page1 = writer.getImportedPage(reader, 1);
            writer.getDirectContent().addTemplate(page1, 1, 0, 0, 1, 0, 0);            
            
            PdfContentByte cb = writer.getDirectContent();
            BarcodeInter25 codeI25 = new BarcodeInter25();
            codeI25.setCode("00190000090050201018400016324188");
            Image imageI25 = codeI25.createImageWithBarcode(cb, null, null);

            //ao criar o Chunk, os parametros correspondem a imagem, posicao horizontal,
            //posicao vertical
            document.add(new Phrase(new Chunk(imageI25, 10, -600)));            
            
            document.close();
            } catch (Exception e) {
            e.printStackTrace();
        }
        
        response.setContentType("application/pdf");
        response.setContentLength(baos.size());
        baos.writeTo(out);
        out.flush();

Nessa primeira tentativa, estou usando o PdfImportedPage para importar a página do meu relatório já criado e colocá-la no meu novo relatório. Porém, não está funcionando: o relatório vem apenas com o código de barras, sem ter importado o relatório do arquivo.

A segunda forma:

        ServletOutputStream out = response.getOutputStream();
        Document document = new Document();
        
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
        try {

            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/caminho/meurelatorio.pdf"));
            
            document.open();

            PdfContentByte cb = writer.getDirectContent();
            BarcodeInter25 codeI25 = new BarcodeInter25();
            codeI25.setCode("00190000090050201018400016324188");
            Image imageI25 = codeI25.createImageWithBarcode(cb, null, null);
            //ao criar o Chunk, os parametros correspondem a imagem, posicao horizontal,
            //posicao vertical
            document.add(new Phrase(new Chunk(imageI25, 10, -600)));            
            
            document.close();
            } catch (Exception e) {
            e.printStackTrace();
        }
        
        response.setContentType("application/pdf");
        response.setContentLength(baos.size());
        baos.writeTo(out);
        out.flush();

Nessa segunda tentativa, tento abrir o pdf direto em meu document e escrever a imagem nela com o pdfwriter. O código é interpretado normalmente e não dá nenhum erro, porém na hora que o pdf é lançado na tela, ele não abre… fica só a tela cinza, como se estivesse eternamente carregando.

A documentação que estou consultando veio principalmente daqui: http://itextdocs.lowagie.com/tutorial/general/copystamp/. Talvez tenha alguma falha que não estou enxergando, então, toda ajuda é bem vinda. Aceito sugestões de novas formas de fazer isso.

Obrigada pela atenção