I am creating labels (as in Avery labels) using iText 5 tables. Positioning of label elements requires some very tight tolerances in order to fit everything on the label. My problem is that I have various zones on the label as PdfPCells. I need to fit text into these zones with 0 wasted space. But I always seem to have extra space at the top of the cell. This is best illustrated by using .setVerticalAlignment(Element.ALIGN_TOP); which does not bring the text to the top of my cell.
I'd show image but apparently I'm not allowed.
How do I get rid of this space?
package actions.test;
import java.io.FileOutputStream;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class PdfCellTest
{
public static void main(String[] args) throws Exception {
System.out.println("Cell Test");
BaseFont bf = BaseFont.createFont
(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
Font companyFont =new Font(bf);
companyFont.setSize(10.5f);
companyFont.setColor(BaseColor.BLUE);
companyFont.setStyle(Font.BOLD);
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream("c:\\temp\\celltest.pdf"));
document.open();
PdfPTable main = new PdfPTable(1);
main.setWidthPercentage(30);
Phrase companyPhrase = new Phrase("My Company Name, LLC",companyFont);
PdfPCell companyCell = new PdfPCell(companyPhrase);
companyCell.setHorizontalAlignment(Element.ALIGN_CENTER);
companyCell.setVerticalAlignment(Element.ALIGN_TOP);
companyCell.setBorder(Rectangle.BOX);
companyCell.setBorderColor(BaseColor.RED);
companyCell.setPadding(0);
companyCell.setFixedHeight(10.5f);
companyCell.setBackgroundColor(BaseColor.WHITE);
main.addCell(companyCell);
document.add(main);
document.close();
}
}