2015-04-30 89 views
0

我們在橫向模式下生成了一個PDF格式的頁眉和頁腳作爲pdf的一部分。使用itextpdf5.1.1 jar將表頭和頁腳顯示爲pdf。但是,當我們將jar更新到5.5.3時,表頭不顯示頁腳顯示。以下是代碼片段。pdf表格使用itextpdf5.1.1顯示,但不是在itextpdf5.5.3中顯示

document = new Document(PageSize.A4.rotate(), 20, 20, 75, 20); 

PdfCopy copy = new PdfCopy(document, new FileOutputStream(strPDFFile)); 
document.open(); 
PdfReader pdfReaderIntermediate = 
    new PdfReader(strIntermediatePDFFile); 
numberOfPages = pdfReaderIntermediate.getNumberOfPages(); 
Font ffont = new Font(Font.FontFamily.UNDEFINED, 7, Font.NORMAL); 
System.out.println("###### No. of Pages: " + numberOfPages); 
for (int j = 0; j < numberOfPages;) { 
    page = copy.getImportedPage(pdfReaderIntermediate, ++j); 
    stamp = copy.createPageStamp(page); 
    Phrase footer = 
     new Phrase(String.format("%d of %d", j, numberOfPages), ffont); 
    ColumnText.showTextAligned(stamp.getUnderContent(), 
           Element.ALIGN_CENTER, footer, 
           (document.right() - document.left())/
           2 + document.leftMargin(), 
           document.bottom() - 10, 0); 
    if (j != 1) { 
     headerTable = new PdfPTable(2); 
     headerTable.setTotalWidth(700); 
     headerTable.getDefaultCell().setFixedHeight(10); 
     headerTable.getDefaultCell().setBorder(Rectangle.NO_BORDER); 
     headerTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); 
     headerTable.addCell(new Phrase(String.format(header1), ffont)); 
     headerTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT); 
     headerTable.addCell(new Phrase(String.format(header2), ffont)); 
     headerTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); 
     headerTable.addCell(new Phrase(String.format(header3), ffont)); 
     headerTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT); 
     headerTable.addCell(new Phrase(String.format(header5, j), 
             ffont)); 
     headerTable.completeRow(); 
     headerTable.writeSelectedRows(0, 5, 60.5f, 550, 
             stamp.getUnderContent()); 


    } 


    stamp.alterContents(); 
    copy.addPage(page); 

} 
document.close(); 

當我們將jar從5.1.1更改爲5.5.3時,標頭丟失。可能需要改變我們稱之爲新jar包頭的方式。

任何輸入將不勝感激。 謝謝。

回答

0

您有默認填充細胞(即2)和高度10,並嘗試在高度7.但是2(上邊距)插入文本+ 7(文字高度)+ 2(下邊距)= 11,即比配合更進入你的細胞高度10。因此,文本不適合,不顯示。

您可以通過

  • 較小的字體解決這個問題,例如6或
  • 使用高電平,例如, 11或
  • 使用較小的填充,例如, 1:

    headerTable.getDefaultCell().setPadding(1); 
    

隨着這些變化,你的頭節目。

我不知道iText 5.1.1是以何種方式處理的,但是當前iText版本的行爲是有道理的。

+0

上述更正很有幫助。非常感謝!我仍然不知道iText 5.1.1如何忽略這些,但是在更正單元格填充和字體值的值時,我能夠使用iText 5.5.3在pdf中顯示標題 –