Данные от JQuery до Java Servlet и вывод будет в формате PDF - PullRequest
0 голосов
/ 19 апреля 2020

Здесь у меня есть некоторая проблема, чтобы сделать вывод моей сети PDF. У меня есть таблица с какой-то ссылкой внутри. Эта ссылка предоставит информацию для Java сервлетов через JQuery $ .post, и в результате будет получен файл PDF из таблицы. Вот код таблицы.

<table id="lsconf" class="tableku table-bordered table-sm nowrap" style="color: #000;">
                    <thead>
                      <tr>
                        <th class="th-sm" style="background: #1ab188;">Remove</th>
                        <th class="th-sm" style="background: #1ab188;">Export to PDF</th>
                        <th class="th-sm" style="background: #1ab188;">Student ID</th>
                        <th class="th-sm" style="background: #1ab188;">Year</th>
                        <th class="th-sm" style="background: #1ab188;">Semester</th>
                        <th class="th-sm" style="background: #1ab188;">First Name</th>      
                        <th class="th-sm" style="background: #1ab188;">Last Name</th>
                        <th class="th-sm" style="background: #1ab188;">Birthdate</th>
                        <th class="th-sm" style="background: #1ab188;">Sex</th>
                        <th class="th-sm" style="background: #1ab188;">Email</th>
                        <th class="th-sm" style="background: #1ab188;">Department</th>
                        <th class="th-sm" style="background: #1ab188;">Degree</th>                      
                        <th class="th-sm" style="background: #1ab188;">Phone Number</th>
                        <th class="th-sm" style="background: #1ab188;">Location</th>
                        <th class="th-sm" style="background: #1ab188;">Conference Name</th>
                        <th class="th-sm" style="background: #1ab188;">Topic</th>               
                      </tr>
                    </thead>
                    <tbody>
                      <c:forEach items="${locstudList}" var="locstud" >
                      <tr>
                        <td style="text-align: center;"><a class="remove" style="cursor:pointer;">&#10060</a></td>
                        <td style="text-align: center;"><a class="down" style="cursor:pointer;"><i class="fa fa-download" style="color: #fff;" aria-hidden="true"></i></a></td>
                        <td class="id"          style="color: #fff; vertical-align: middle;">${locstud.studentId}</td>
                        <td class="year"        style="color: #fff; vertical-align: middle;">${locstud.year}</td>
                        <td class="semester"    style="color: #fff; vertical-align: middle;">${locstud.semester}</td>
                        <td class="fname"       style="color: #fff; vertical-align: middle;">${locstud.fname}</td>
                        <td class="lname"       style="color: #fff; vertical-align: middle;">${locstud.lname}</td>  
                        <td class="birth"       style="color: #fff; vertical-align: middle;">${locstud.birth}</td>
                        <td class="sex"         style="color: #fff; vertical-align: middle;">${locstud.sex}</td>
                        <td class="email"       style="color: #fff; vertical-align: middle;">${locstud.email}</td>
                        <td class="department"  style="color: #fff; vertical-align: middle;">${locstud.department}</td>
                        <td class="degree"      style="color: #fff; vertical-align: middle;">${locstud.degree}</td>                     
                        <td class="phonenum"    style="color: #fff; vertical-align: middle;">${locstud.phonenum}</td>
                        <td class="location"    style="color: #fff; vertical-align: middle;">${locstud.location}</td>
                        <td class="conference"  style="color: #fff; vertical-align: middle;">${locstud.conference}</td>
                        <td class="topic"       style="color: #fff; vertical-align: middle;">${locstud.topic}</td>
                      </tr>
                    </c:forEach> 
                    </tbody>
                </table>

Вот мой JQuery код.

$('.down').click(function () {

          var data2 = $(this).parents('tr');
          var col1 = data2.find('td:eq(1)').text();
          markrow = markrow + ';' + col1;         

          alert(markrow);

          $.post(
              "GeneratePDF", 
              {data : markrow},
              function(result) {
              alert(result);              
          });
        }); 

Наконец, это мой Java Код сервлета

Document document = new Document();
        try
        {
            String data = request.getParameter("data"); 
            String filename = "Test123.pdf";   
            response.setContentType("application/pdf");         
            PdfWriter.getInstance(document, response.getOutputStream());
            response.setHeader("Content-Disposition","attachment; filename=" + filename);
            document.open();
            document.add(new Paragraph(data));  
            document.close();
            System.out.println("Done");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }   

Но я просто получите этот вывод

%PDF-1.4 %���� 2 0 obj <>stream x�+�r �26S�00SI�2P�5�1���BҸ4>>>/MediaBox[0 0 595 842]/Parent 3 0 R/Contents 2 0 R/Type/Page>> endobj 1 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj xref 0 7 0000000000 65535 f 0000000331 00000 n 0000000015 00000 n 0000000419 00000 n 0000000174 00000 n 0000000470 00000 n 0000000515 00000 n trailer <]/Info 6 0 R>> %iText-5.4.0 startxref 668 %%EOF
...