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