Download pdf

Bom dia galera!
Fiz um botao na aplicação para download de um laudo em PDF, porem ele salva direto.
Gostaria de saber como faço para abrir aquele janela para que o cara possa escolher onde salvar o PDF.
vou colocar o codigo pra vcs darem uma olhada!

Obrigado!!!



import java.io.FileOutputStream;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletResponse;



public class ServiceManageReceivingQualityExportPdf extends TraceJSONService {

	@Override
	protected Result process(xxxxxxxxxxxxxxxxxxxxxxxxxx) throws Throwable {
		try {

			long paramQualityToGrid = request.getParameterAsLong("qualityToGrid", "0");
			long paramQuantity = request.getParameterAsLong("quantity", "0");
			String paramProdDesc = request.getParameter("productDesc");
			String paramProvider = request.getParameter("provider");
			String paramDtNF = request.getParameter("dtNF");
			long paramNumberNF = request.getParameterAsLong("numberNF", "0");
			String paramWInstruction = request.getParameter("workInstruction");
			String paramDtWIInitial = request.getParameter("dtWIInitial");
			String paramDtWIFinal = request.getParameter("dtWIFinal");
			String paramDtWIDevolution = request.getParameter("dtWIDevolution");
			String paramOperatorNameWI = request.getParameter("operatorNameWI");
			String paramElaboratedBy = request.getParameter("elaboratedBy");
			String paramResponsibleReport = request.getParameter("responsibleReport");
			String paramDescConclusion = request.getParameter("descriptionConclusion");
			String paramCorrectionsConclusion = request.getParameter("correctionsConclusion");
			String paramResponsibleConclusion = request.getParameter("responsibleConclusion");
			Boolean paramIsSampling = request.getParameterAsBoolean("sampling", "true");
			long paramRecQltRepId = request.getParameterAsLong("recQltRepId", "0");

			ServiceManageQualityReportMail serviceManage = new ServiceManageQualityReportMail();

			BeanWorkInstructions beanWorkInstructions = serviceManage.getWorkInstruction(paramWInstruction);
			long totalConform = serviceManage.getTotalConform(paramRecQltRepId);
			long totalNotConform = serviceManage.getTotalNotConform(paramRecQltRepId);
			SimpleDateFormat sdtYear = new SimpleDateFormat("yyyy");
			String year = sdtYear.format(new Timestamp(new Date().getTime()));
			String reportRegister = "DO-LCR-" + paramRecQltRepId + "/" + year;
			String directoryOfPdf = "C:/do_lcr_" + paramRecQltRepId + "_" + year + ".pdf";

			String htmlText = serviceManage.getHtmlText(paramQualityToGrid, paramQuantity, paramProdDesc, paramProvider, paramDtNF,
					paramNumberNF, beanWorkInstructions.getNameWorkInstructions().toString(), paramDtWIInitial, paramOperatorNameWI,
					paramElaboratedBy, paramResponsibleReport, paramDescConclusion, paramCorrectionsConclusion, paramResponsibleConclusion,
					paramIsSampling, totalConform, totalNotConform, reportRegister, directoryOfPdf, paramDtWIFinal, paramDtWIDevolution,
					false);

			HTMLToPdf htmlToPdf = new HTMLToPdf();
			htmlToPdf.convert(htmlText, new FileOutputStream(directoryOfPdf));

		} catch (Exception e) {
			TraceUtil.logError(e);
			throw e;
		}
		return null;
	}
}