public float getFontDescriptor(int key, float fontSize) { if (cjkMirror != null) return cjkMirror.getFontDescriptor(key, fontSize); switch (key) { case AWT_ASCENT:
public float getFontDescriptor(int key, float fontSize) { if (cjkMirror != null) return cjkMirror.getFontDescriptor(key, fontSize); switch (key) { case AWT_ASCENT:
private void setMetricDefaults() { _underlinePosition = -50; _underlineThickness = 50; int[] box = _font.getCharBBox('x'); if (box != null) { _yStrikeoutPosition = box[3] / 2 + 50; _yStrikeoutSize = 100; } else { // Do what the JDK does, size will be calculated by ITextTextRenderer _yStrikeoutPosition = _font.getFontDescriptor(BaseFont.BBOXURY, 1000f) / 3.0f; } }
private float calculateFontSize(float w, float h) throws IOException, DocumentException { BaseFont ufont = getRealFont(); float fsize = fontSize; if (fsize == 0) { float bw = ufont.getWidthPoint(text, 1); if (bw == 0) fsize = 12; else fsize = w / bw; float nfsize = h / (1 - ufont.getFontDescriptor(BaseFont.DESCENT, 1)); fsize = Math.min(fsize, nfsize); if (fsize < 4) fsize = 4; } return fsize; }
private float calculateFontSize(float w, float h) throws IOException, DocumentException { BaseFont ufont = getRealFont(); float fsize = fontSize; if (fsize == 0) { float bw = ufont.getWidthPoint(text, 1); if (bw == 0) fsize = 12; else fsize = w / bw; float nfsize = h / (1 - ufont.getFontDescriptor(BaseFont.DESCENT, 1)); fsize = Math.min(fsize, nfsize); if (fsize < 4) fsize = 4; } return fsize; }
/** * Gets the biggest descender for all the fonts used * in this line. Note that this is a negative number. * @return maximum size of all the descenders used in this line */ public float getDescender() { float descender = 0; for (int k = 0; k < line.size(); ++k) { PdfChunk ck = line.get(k); if (ck.isImage()) descender = Math.min(descender, ck.getImageOffsetY()); else { PdfFont font = ck.font(); float textRise = ck.getTextRise(); descender = Math.min(descender, (textRise < 0 ? textRise : 0) + font.getFont().getFontDescriptor(BaseFont.DESCENT, font.size())); } } return descender; }
/** * Gets the biggest descender for all the fonts used * in this line. Note that this is a negative number. * @return maximum size of all the descenders used in this line */ public float getDescender() { float descender = 0; for (int k = 0; k < line.size(); ++k) { PdfChunk ck = line.get(k); if (ck.isImage()) descender = Math.min(descender, ck.getImageOffsetY()); else { PdfFont font = ck.font(); float textRise = ck.getTextRise(); descender = Math.min(descender, (textRise < 0 ? textRise : 0) + font.getFont().getFontDescriptor(BaseFont.DESCENT, font.size())); } } return descender; }
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
/** Gets the maximum area that the barcode and the text, if * any, will occupy. The lower left corner is always (0, 0). * @return the size the barcode occupies. */ public Rectangle getBarcodeSize() { float fontX = 0; float fontY = 0; if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size; String fullCode = code; if (generateChecksum && checksumText) fullCode += getChecksum(fullCode); fontX = font.getWidthPoint(altText != null ? altText : fullCode, size); } String fullCode = keepNumbers(code); int len = fullCode.length(); if (generateChecksum) ++len; float fullWidth = len * (3 * x + 2 * x * n) + (6 + n ) * x; fullWidth = Math.max(fullWidth, fontX); float fullHeight = barHeight + fontY; return new Rectangle(fullWidth, fullHeight); }
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
/** Gets the maximum area that the barcode and the text, if * any, will occupy. The lower left corner is always (0, 0). * @return the size the barcode occupies. */ public Rectangle getBarcodeSize() { float fontX = 0; float fontY = 0; if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size; String fullCode = code; if (generateChecksum && checksumText) fullCode += getChecksum(fullCode); fontX = font.getWidthPoint(altText != null ? altText : fullCode, size); } String fullCode = keepNumbers(code); int len = fullCode.length(); if (generateChecksum) ++len; float fullWidth = len * (3 * x + 2 * x * n) + (6 + n ) * x; fullWidth = Math.max(fullWidth, fontX); float fullHeight = barHeight + fontY; return new Rectangle(fullWidth, fullHeight); }
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
/** * Gets the maximum size of the ascender for all the fonts used * in this line. * @return maximum size of all the ascenders used in this line */ public float getAscender() { float ascender = 0; for (int k = 0; k < line.size(); ++k) { PdfChunk ck = line.get(k); if (ck.isImage()) ascender = Math.max(ascender, ck.getImageHeight() + ck.getImageOffsetY()); else { PdfFont font = ck.font(); float textRise = ck.getTextRise(); ascender = Math.max(ascender, (textRise > 0 ? textRise : 0) + font.getFont().getFontDescriptor(BaseFont.ASCENT, font.size())); } } return ascender; }
/** * Gets the maximum size of the ascender for all the fonts used * in this line. * @return maximum size of all the ascenders used in this line */ public float getAscender() { float ascender = 0; for (int k = 0; k < line.size(); ++k) { PdfChunk ck = line.get(k); if (ck.isImage()) ascender = Math.max(ascender, ck.getImageHeight() + ck.getImageOffsetY()); else { PdfFont font = ck.font(); float textRise = ck.getTextRise(); ascender = Math.max(ascender, (textRise > 0 ? textRise : 0) + font.getFont().getFontDescriptor(BaseFont.ASCENT, font.size())); } } return ascender; }
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
if (font != null) { if (baseline > 0) fontY = baseline - font.getFontDescriptor(BaseFont.DESCENT, size); else fontY = -baseline + size;
height += -baseline + size; else height += baseline - font.getFontDescriptor(BaseFont.DESCENT, size);
public FSFontMetrics getFSFontMetrics(FontContext context, FSFont font, String string) { FontDescription descr = ((ITextFSFont)font).getFontDescription(); BaseFont bf = descr.getFont(); float size = font.getSize2D(); ITextFSFontMetrics result = new ITextFSFontMetrics(); result.setAscent(bf.getFontDescriptor(BaseFont.BBOXURY, size)); result.setDescent(-bf.getFontDescriptor(BaseFont.BBOXLLY, size)); result.setStrikethroughOffset(-descr.getYStrikeoutPosition() / 1000f * size); if (descr.getYStrikeoutSize() != 0) { result.setStrikethroughThickness(descr.getYStrikeoutSize() / 1000f * size); } else { result.setStrikethroughThickness(size / 12.0f); } result.setUnderlineOffset(-descr.getUnderlinePosition() / 1000f * size); result.setUnderlineThickness(descr.getUnderlineThickness() / 1000f * size); return result; }
supp.setBarHeight(ean.getBarHeight() + supp.getBaseline() - supp.getFont().getFontDescriptor(BaseFont.CAPHEIGHT, supp.getSize())); else supp.setBarHeight(ean.getBarHeight());