/* * Created on Mar 24, 2010 * (c) 2010 Trumpet, Inc. * */ package com.itextpdf.text.pdf.parser; import java.io.ByteArrayOutputStream; import java.io.IOException; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.itextpdf.testutils.TestResourceUtils; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfDictionary; import com.itextpdf.text.pdf.PdfName; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfWriter; /** * @author kevin */ public class TextMarginFinderTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testBasics() throws Exception{ Rectangle rToDraw = new Rectangle(1.42f*72f, 2.42f*72f, 7.42f*72f, 10.42f*72f); rToDraw.setBorder(Rectangle.BOX); rToDraw.setBorderWidth(1.0f); byte[] content = createPdf(rToDraw); //TestResourceUtils.openBytesAsPdf(content); TextMarginFinder finder = new TextMarginFinder(); new PdfReaderContentParser(new PdfReader(content)).processContent(1, finder); Assert.assertEquals(1.42f*72f, finder.getLlx(), 0.01f); Assert.assertEquals(7.42f*72f, finder.getUrx(), 0.01f); Assert.assertEquals(2.42f*72f, finder.getLly(), 0.01f); Assert.assertEquals(10.42f*72f, finder.getUry(), 0.01f); } private byte[] createPdf(Rectangle recToDraw) throws DocumentException, IOException{ ByteArrayOutputStream baos = new ByteArrayOutputStream(); Document doc = new Document(); PdfWriter writer = PdfWriter.getInstance(doc, baos); writer.setCompressionLevel(0); doc.open(); PdfContentByte canvas = writer.getDirectContent(); canvas.beginText(); float fontsiz = 12; float llx = 1.42f * 72f; float lly = 2.42f * 72f; float urx = 7.42f * 72f; float ury = 10.42f * 72f; BaseFont font = BaseFont.createFont(); canvas.setFontAndSize(font, fontsiz); float ascent = font.getFontDescriptor(BaseFont.ASCENT, fontsiz); float descent = font.getFontDescriptor(BaseFont.DESCENT, fontsiz); canvas.showTextAligned(PdfContentByte.ALIGN_LEFT, "LowerLeft", llx, lly-descent, 0.0f); canvas.showTextAligned(PdfContentByte.ALIGN_RIGHT, "LowerRight", urx, lly-descent, 0.0f); canvas.showTextAligned(PdfContentByte.ALIGN_LEFT, "UpperLeft", llx, ury - ascent, 0.0f); canvas.showTextAligned(PdfContentByte.ALIGN_RIGHT, "UpperRight", urx, ury - ascent, 0.0f); canvas.endText(); if (recToDraw != null){ doc.add(recToDraw); } doc.close(); return baos.toByteArray(); } }