i creating labels (as in avery labels) using itext 5 tables. positioning of label elements requires tight tolerances in order fit on label. problem have various zones on label pdfpcells. need fit text these zones 0 wasted space. seem have space @ top of cell. best illustrated using .setverticalalignment(element.align_top); not bring text top of cell.
i'd show image apparently i'm not allowed.
how rid of 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(); } }
you close solution. properties you're setting ok, try adding:
companycell.setuseascender(true); companycell.setusedescender(true); what these methods do? take account metrics stored in font being used. talk top padding, you'll notice "descender" have nice effect on bottom padding.
the top "padding" isn't padding. it's "leading". using default font, helvetica 12pt. default leading 1.5 times font size. that's 18pt. working in text mode, means can define leading @ level of cell (as opposed composite mode define leading @ level of elements). instance: can remove 4pt top "padding" this:
companycell.setleading(14); important: reduce spacing between different lines. if not option, may want switch composite mode.
Comments
Post a Comment