Hazlo con el jasperReports pero sin base de datos.
Mete los valores que quieres que sean dinámicos como parámetros:
$P{nombreParametro}
En tu código usas un HashMap para los parámetros:
Map parametros = new HashMap();
parametros.put("nombreParametro", parametro);
y los metes:
jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, conexion);
Te paso un ejemplo completo para exportar a Pdf y Rtf un mismo archivo:
Código:
JasperReport jasperReport = JasperCompileManager.compileReport(pathAlaPlantilla);
Map parametros = new HashMap();
parametros.put("nombreParametro_i", parametro_i);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, conexion); // Si no usas conexión no pasa nada
JasperExportManager.exportReportToPdfFile(jasperPrint, pathAlFicheroDeSalida);
JRRtfExporter exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUPUT_FILE_NAME, pathAlFicheroDeSalida);
exporter.exportReport();
Puedes exportar también a XLS, XML, HTML, CVS, ...
Saludos