I have a simple Java program that takes a .jrxml file, compiles it, then fills it. The data for the report is supplied in an XML file. After the fill is done, the data is exported to PDF. // Parse input documentDocument document = JRXmlUtils.parse(new File(xmlFile));// Set it as the data source in the parametersparameters.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, document);// Create and set the virtualizerJRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "/tmp");virtualizer.setReadOnly(true);parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);// Fill the reportString jasperFile = designFile.replaceAll(".jrxml",".jasper");print = JasperFillManager.fillReport(jasperFile, parameters);// Export the report to PDFArrayList<JasperPrint> jasperPrints = new ArrayList<JasperPrint>();jasperPrints.add(print);JRPdfExporter exp = new JRPdfExporter();exp.setParameter (JRExporterParameter.JASPER_PRINT_LIST, jasperPrints);exp.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFileName );exp.exportReport();[/code]My confusion is about the export That fill line above works great for small reports, but once I get an XML source file approaching 1/2 MB, it will spin for over a day, regardless of setting the file virtualizer (which I do). I see there is another method called fillReportToSteam. My confusion is that with fillReport, I have to do an extra step to export to PDF. What sort of stream is fillReportToStream writing to, and how do I specify that? Will fillReportToStream write to a PDF file? I haven't been able to find any examples. I was hoping I could take advantage of the stream so that I could measure the progress and get these PDFs to complete in a normal span of time. UPDATE: fillReportToStream doesn't work for PDF files, at least in 4.7. That's extremely unfortunate. It "creates" a PDF file, but it's corrups and can't be read. And even then, it doesn't work any different than what I do above. In other words, for my 1/2 MB source file, it just sits and churns forever with the PDF file at 0 bytes. UPDATE 2: Looks like it creates JasperPrint files. UPDATE 3: I have the "streaming" solution working for an extremely small file. But for the "large" file (like 1/2 of a MB is large) it churns at 100% CPU for 2 hours, and the file that is supposed to be "streamed" to is still at zero bytes. The hits seem to keep coming with this JasperReports library. I've done some interesting stuff with it in the past, but ever since I "upgraded" from 3.5 to 4.7, I am dead in the water.