0
我試圖在我的PDF頁腳中添加圖像和頁面號。我的問題是我無法顯示圖像上的頁碼。以下是我的代碼。使用iText的PDF頁腳中的圖像上的文本
public void onEndPage(PdfWriter writer, Document document) {
int pageNo=writer.getPageNumber()-this.pageNumber+1;
Integer dummy=pageNo;
String pageNoString=dummy.toString();
PdfContentByte cbb = writer.getDirectContent();
try {
ColumnText column = new ColumnText(cbb);
PdfPTable newtable = new PdfPTable(1);
newtable.setTotalWidth(530);
newtable.setLockedWidth(true);
Image img = Image.getInstance("C:/Users/sathesh/Desktop/Warfiles/PDFFiles/Footer.png");
PdfPCell imageCell=new PdfPCell();
PdfPCell textCell=new PdfPCell(new Paragraph("Disclaimer text",new Font(Font.FontFamily.COURIER, 6, Font.NORMAL)));
imageCell.setBorder(Rectangle.NO_BORDER);
textCell.setBorder(Rectangle.NO_BORDER);
imageCell.setImage(img);
ColumnText.showTextAligned(cbb,
Element.ALIGN_LEFT, new Phrase(pageNoString,FontFactory.getFont(FontFactory.COURIER,12,new BaseColor(0xFF, 0x00, 0x00))), 50, 95, 0);
newtable.addCell(imageCell);
newtable.addCell(textCell);
column.addElement(newtable);
column.setSimpleColumn(30, 130, 570, 45,5f, Element.ALIGN_RIGHT | Element.ALIGN_BOTTOM |Element.ALIGN_JUSTIFIED_ALL);
}
column.go();
catch(Exception e)
{
e.printStackTrace();
}
}
爲什麼你難以添加文本?爲什麼不使用'ColumnText.showAligned()',這使得定位文本變得更容易(不需要計算正弦和餘弦)。此外,我沒有看到使用'column'而不使用'go()'方法的觀點。您還可以在複合模式下使用「ColumnText」來定義對齊方式(但這隻適用於文本模式)。最後:爲什麼你認爲使用'Element.ALIGN_BOTTOM'可以使用'setSimpleColumn()'。我很抱歉,但你的代碼已經無法修復了。請重新從頭開始。 –
我忘了在此代碼中添加'column.go();'。我更新了我的代碼。我需要幫助才能在圖片上方顯示頁面。 –
我的其他評論呢?另外,想想福爾摩斯和沃森:初級邏輯可以幫助你。如果先添加文本然後添加圖像,那麼圖像是否覆蓋文本是否正常?爲什麼不切換添加文本和圖像,以便文本覆蓋圖像。我真的希望你考慮扔掉你的代碼並重新開始寫出體面的代碼。 'setTextMatrix()'方法不應該被不明白參數含義的人使用。使用'ColumnText.showAligned()',那些必須閱讀代碼的人會感謝你! –