Angular / iTextPDF:导出带有pdf分页符的html

时间:2019-04-08 15:11:32

标签: java html angularjs itext

我在Jhipster中使用AngularJS。

我需要导出页面html的一部分的PDF。

我的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中。

谢谢

0 个答案:

没有答案