package org.mapfish.print.servlet.job.impl; import org.mapfish.print.config.WorkingDirectories; import org.mapfish.print.servlet.job.PrintJob; import org.springframework.beans.factory.annotation.Autowired; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.net.URI; /** * A PrintJob implementation that write results to files. * <p></p> */ public class FilePrintJob extends PrintJob { @Autowired private WorkingDirectories workingDirectories; @Override protected final URI withOpenOutputStream(final PrintAction function) throws Exception { final File reportFile = new File(this.workingDirectories.getReports(), getEntry().getReferenceId()); FileOutputStream out = null; BufferedOutputStream bout = null; try { out = new FileOutputStream(reportFile); bout = new BufferedOutputStream(out); function.run(bout); } finally { try { if (bout != null) { bout.close(); } } finally { if (out != null) { out.close(); } } } return reportFile.toURI(); } }