2017-02-23 65 views
0

全球 我使用XMLWorker(5.5.6)將包含阿拉伯字符的XHTML頁面轉換爲PDF。所有工作正常,但「頁面中斷之前」不起作用! 這裏是我的html頁面:XMLWorker(iText)不會中斷PDF結果中的頁面

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <title>Déclaration</title> 
 
     <style type="text/css" > 
 
      table { 
 
       page-break-before: always; 
 
      } 
 
     </style> 
 
    </head> 
 
<body style="font-family: Noto Naskh Arabic"> 
 
<p style="page-break-before: always;text-align: center; font-size: 24px; font-family: Noto Naskh Arabic">الجمهورية</p> 
 
<div style="page-break-before: always;text-align: center; font-size: 18px; font-family: Verdana" >REPUBLIQUE </div> 
 
<div dir="rtl" style="page-break-before: always;text-align: center; font-size: 24px; font-family: Noto Naskh Arabic" >تصريــــح بالممتلكـــــات</div> 
 
<p style="font-family: Verdana">DECLARATION </p> 
 

 
<table width="100%" style="page-break-before: always" > 
 
\t <tr><td>Code Willaya </td><td></td><td>رمز الولاية</td></tr> 
 
\t <tr><td>Code de la commune </td><td></td><td>رمز البلدية</td></tr> 
 
</table>

還有的使用,如果由XML工人產生的元素直接添加到http://developers.itextpdf.com/2078

+0

只有當XML worker生成的元素直接添加到'Document'時,才支持'page-break-before'樣式屬性,而不是像您的示例中那樣添加到表格單元格時。不幸的是RTL只支持表格單元格。 – mkl

回答

3

page-break-before樣式屬性只支持Java代碼Document,如果它們被添加到一個表格單元格中,就像在你的例子中那樣。不幸的是RTL只支持表格單元格。

作爲示例添加的元素本身,雖然,一方面可以提高它也正確地解釋分頁標記,只是增強原始循環

PdfPTable table = new PdfPTable(1); 
PdfPCell cell = new PdfPCell(); 
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 
for (Element e : elements) { 
    cell.addElement(e); 
} 
table.addCell(cell); 
document.add(table); 

這樣的:

PdfPTable table = new PdfPTable(1); 
PdfPCell cell = new PdfPCell(); 
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 
for (Element e : elements) { 
    if (e == Chunk.NEXTPAGE) 
    { 
     table.addCell(cell); 
     document.add(table); 
     document.newPage(); 
     table = new PdfPTable(1); 
     cell = new PdfPCell(); 
    } 
    else 
    { 
     cell.addElement(e); 
    } 
} 
table.addCell(cell); 
document.add(table); 

(您應該添加一些檢查以防止空表被添加到此處。)


順便說一句,爲了讓這個例子處理你​​的例子,我不得不註釋掉你的標題元素。但是這可能是您的XMLWorker版本5.5.6和我在此使用的5.5.11-SNAPSHOT版本之間的區別。