Angular / iTextPDF: экспорт HTML с разрывом страницы в формате PDF - PullRequest
0 голосов
/ 08 апреля 2019

Я использую AngularJS с Jhipster.

Мне нужно сделать PDF экспорта части моей HTML-страницы.

Моя HTML-часть выглядит следующим образом:

<ul>
   <div ng-repeat="prop in vm.properties">
      <li>
         <span translate="test.ccxx"></span>
         <div>
            <table ng-repeat="tab in vm.tables">
               <tr>
                  <th>
                     <span>{{tab.name}}</span>
                  </th>
               </tr>
               <tr ng-repeat="flow in vm.flows">
                  <td>
                     <span>{{flow.title}}</span>
                     <ul>
                         <li ng-repeat="us in vm.res[flow.id].us">
                            <span>
                                <img src="../content/flag_{{us.flag}}" />
                            </span>
                         </li>
                      </ul>
                   </td>
                </tr>
             </table>
          </div>
       </li>
   </div>
</ul>

Это хорошо отображается на мой взгляд.Но теперь мне нужно экспортировать только эту часть в теле моей страницы itext.

String jrxmlPath = "C:\\Users\\XXXXX\\Downloads\\testPDF.pdf";

            Date date = new Date();
            SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY/MM/DD");
            String dateStr = dateFormat.format(date);

            Document document = new Document(PageSize.A4.rotate(), 0, 0, 0, 0);
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(jrxmlPath));

            // SET COVER -- add a header and a foooter to all pages
            document.open();
            setCover(writer, document, event);

            StringBuilder htmlString = new StringBuilder();
htmlString.append(myhtml);
            InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes());
            XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
            ElementHandlerClass ehc = new ElementHandlerClass();
            worker.parseXHtml(ehc, new StringReader(htmlString.toString()));

            ColumnText ct = new ColumnText(writer.getDirectContent());
            ct.setSimpleColumn(5, 65, 830, 500);
            for(Element element : ehc.elements) {
                ct.addElement(element);
            }
            int status = ct.go();
            while(ColumnText.hasMoreText(status)) {
                document.newPage();
                ct.setSimpleColumn(5, 65, 930, 500);
                status = ct.go();
            }
            document.close();
            System.out.println("PDF Created"); 

Эта часть Java создает PDF-файл с верхним и нижним колонтитулом для всех страниц.Он добавил мой HTML в тексте столбца.

Моя проблема связана с таблицами, расположенными на разрыве страницы.Мне нужно отобразить всю таблицу целиком, а не вырезать, как сегодня.

Я пытаюсь с разрывом страниц ... но пока ничего не получается.

У кого-нибудь была идея??

Другая проблема связана с изображением, которого нет в моем файле PDF.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...