From a22ef629b3f53e99d00784451b3a3cadc8ad599d Mon Sep 17 00:00:00 2001 From: ulrich@undisclosed Date: Tue, 21 Apr 2020 21:58:44 +0000 Subject: [PATCH] Servlet-Ausgabe auf PDF umgestellt, wenn PDF als Parameter angegeben wurde --- src/de/uhilger/wbx/web/AdocServlet.java | 69 ++++++++++++++++++---------------- 1 files changed, 36 insertions(+), 33 deletions(-) diff --git a/src/de/uhilger/wbx/web/AdocServlet.java b/src/de/uhilger/wbx/web/AdocServlet.java index 5ab61c9..6f9d7d7 100644 --- a/src/de/uhilger/wbx/web/AdocServlet.java +++ b/src/de/uhilger/wbx/web/AdocServlet.java @@ -61,42 +61,45 @@ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - // Asciidoc-Quelldatei aus HTTP-Request ermitteln - String vPath = request.getServletPath(); - String absname = getServletContext().getRealPath(vPath); - File adocfile = new File(absname); - - // HTML-Datei ermitteln - String nameext = adocfile.getName(); - String fname = nameext.substring(0, nameext.lastIndexOf(DOT)); - File htmlfile = new File(adocfile.getParentFile(), fname + DOT + HTML); - - /* - nach HTML transformieren, wenn die Quelle sich geandert hat oder - die HTML-Datei noch nicht existiert - */ - if(!htmlfile.exists() || adocfile.lastModified() > htmlfile.lastModified()) { - transform(absname); + // Asciidoc-Quelldatei aus HTTP-Request ermitteln + String vPath = request.getServletPath(); + String absname = getServletContext().getRealPath(vPath); + File adocfile = new File(absname); + + // HTML-Datei ermitteln + String nameext = adocfile.getName(); + String fname = nameext.substring(0, nameext.lastIndexOf(DOT)); + File htmlfile = new File(adocfile.getParentFile(), fname + DOT + HTML); + File outfile = htmlfile; // Standardmaessig wird HTML zurueckgegeben + response.setContentType("text/html;charset=UTF-8"); + + /* + nach HTML transformieren, wenn die Quelle sich geandert hat oder + die HTML-Datei noch nicht existiert + */ + if(!htmlfile.exists() || adocfile.lastModified() > htmlfile.lastModified()) { + transform(absname); + } + + /* + nach PDF transformieren, wenn der Parameter pdf=true existiert und + wenn die Quelle sich geandert hat oder + die PDF-Datei noch nicht existiert + */ + String pdf = request.getParameter(PDF); + if(null != pdf && pdf.equalsIgnoreCase(Boolean.TRUE.toString())) { + File pdffile = new File(adocfile.getParentFile(), fname + DOT + PDF); + outfile = pdffile; // PDF soll zurueckgegeben werden + response.setContentType("application/pdf;charset=UTF-8"); + if(!pdffile.exists() || adocfile.lastModified() > pdffile.lastModified()) { + transform(absname, PDF); } - - /* - nach PDF transformieren, wenn der Parameter pdf=true existiert und - wenn die Quelle sich geandert hat oder - die PDF-Datei noch nicht existiert - */ - String pdf = request.getParameter(PDF); - if(null != pdf && pdf.equalsIgnoreCase(Boolean.TRUE.toString())) { - File pdffile = new File(adocfile.getParentFile(), fname + DOT + PDF); - if(!pdffile.exists() || adocfile.lastModified() > pdffile.lastModified()) { - transform(absname, PDF); - } - } + } - // HTML-Datei ausgeben - FileInputStream in = new FileInputStream(htmlfile); + try (PrintWriter out = response.getWriter()) { + // abhaengig vom Parameter pdf HTML- oder PDF-Datei ausgeben + FileInputStream in = new FileInputStream(outfile); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line = reader.readLine()) != null) { -- Gitblit v1.9.3