public int getWidth(FontContext context, FSFont font, String string) { BaseFont bf = ((ITextFSFont)font).getFontDescription().getFont(); float result = bf.getWidthPoint(string, font.getSize2D()); if (result - Math.floor(result) < TEXT_MEASURING_DELTA) { return (int)result; } else { return (int)Math.ceil(result); } }
public int getWidth(FontContext context, FSFont font, String string) { BaseFont bf = ((ITextFSFont)font).getFontDescription().getFont(); float result = bf.getWidthPoint(string, font.getSize2D()); if (result - Math.floor(result) < TEXT_MEASURING_DELTA) { return (int)result; } else { return (int)Math.ceil(result); } }
public int getWidth(FontContext context, FSFont font, String string) { BaseFont bf = ((ITextFSFont)font).getFontDescription().getFont(); float result = bf.getWidthPoint(string, font.getSize2D()); if (result - Math.floor(result) < TEXT_MEASURING_DELTA) { return (int)result; } else { return (int)Math.ceil(result); } }
public void drawString(String s, float x, float y, JustificationInfo info) { if (s.length() == 0) return; PdfContentByte cb = _currentPage; ensureFillColor(); AffineTransform at = (AffineTransform)getTransform().clone(); at.translate(x, y); AffineTransform inverse = normalizeMatrix(at); AffineTransform flipper = AffineTransform.getScaleInstance(1, -1); inverse.concatenate(flipper); inverse.scale(_dotsPerPoint, _dotsPerPoint); double[] mx = new double[6]; inverse.getMatrix(mx); cb.beginText(); cb.setFontAndSize(_font.getFontDescription().getFont(), _font.getSize2D() / _dotsPerPoint); cb.setTextMatrix((float)mx[0], (float)mx[1], (float)mx[2], (float)mx[3], (float)mx[4], (float)mx[5]); if (info == null) { cb.showText(s); } else { PdfTextArray array = makeJustificationArray(s, info); cb.showText(array); } cb.endText(); }
private void createAppearance(RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field, String value) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont) box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); PdfAppearance tp2 = (PdfAppearance) tp.getDuplicate(); tp2.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp2, color); field.setDefaultAppearanceString(tp2); tp.beginVariableText(); tp.saveState(); tp.beginText(); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); setFillColor(tp, color); tp.setTextMatrix(0, height / 2 - (fontSize * 0.3f)); tp.showText(value); tp.endText(); tp.restoreState(); tp.endVariableText(); field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp); }
private String replaceMissingCharacters(String string) { char[] charArr = string.toCharArray(); char replacementCharacter = Configuration.valueAsChar("xr.renderer.missing-character-replacement", '#'); // first check to see if the replacement character even exists in the // given font. If not, then do nothing. if (!_font.getFontDescription().getFont().charExists(replacementCharacter)) { XRLog.render(Level.INFO, "Missing replacement character [" + replacementCharacter + ":" + (int) replacementCharacter + "]. No replacement will occur."); return string; } // iterate through each character in the string and make an appropriate // replacement for (int i = 0; i < charArr.length; i++) { if (!(charArr[i] == ' ' || charArr[i] == '\u00a0' || charArr[i] == '\u3000' || _font.getFontDescription().getFont() .charExists(charArr[i]))) { XRLog.render(Level.INFO, "Missing character [" + charArr[i] + ":" + (int) charArr[i] + "] in string [" + string + "]. Replacing with '" + replacementCharacter + "'"); charArr[i] = replacementCharacter; } } return String.valueOf(charArr); }
private String replaceMissingCharacters(String string) { char[] charArr = string.toCharArray(); char replacementCharacter = Configuration.valueAsChar("xr.renderer.missing-character-replacement", '#'); // first check to see if the replacement character even exists in the // given font. If not, then do nothing. if (!_font.getFontDescription().getFont().charExists(replacementCharacter)) { XRLog.render(Level.INFO, "Missing replacement character [" + replacementCharacter + ":" + (int) replacementCharacter + "]. No replacement will occur."); return string; } // iterate through each character in the string and make an appropriate // replacement for (int i = 0; i < charArr.length; i++) { if (!(charArr[i] == ' ' || charArr[i] == '\u00a0' || charArr[i] == '\u3000' || _font.getFontDescription().getFont() .charExists(charArr[i]))) { XRLog.render(Level.INFO, "Missing character [" + charArr[i] + ":" + (int) charArr[i] + "] in string [" + string + "]. Replacing with '" + replacementCharacter + "'"); charArr[i] = replacementCharacter; } } return String.valueOf(charArr); }
private String replaceMissingCharacters(String string) { char[] charArr = string.toCharArray(); char replacementCharacter = Configuration.valueAsChar("xr.renderer.missing-character-replacement", '#'); // first check to see if the replacement character even exists in the // given font. If not, then do nothing. if (!_font.getFontDescription().getFont().charExists(replacementCharacter)) { XRLog.render(Level.INFO, "Missing replacement character [" + replacementCharacter + ":" + (int) replacementCharacter + "]. No replacement will occur."); return string; } // iterate through each character in the string and make an appropriate // replacement for (int i = 0; i < charArr.length; i++) { if (!(charArr[i] == ' ' || charArr[i] == '\u00a0' || charArr[i] == '\u3000' || _font.getFontDescription().getFont() .charExists(charArr[i]))) { XRLog.render(Level.INFO, "Missing character [" + charArr[i] + ":" + (int) charArr[i] + "] in string [" + string + "]. Replacing with '" + replacementCharacter + "'"); charArr[i] = replacementCharacter; } } return String.valueOf(charArr); }
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; }
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; }
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; }
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; }
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; }
private void createAppearance( RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont)box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp, color); field.setDefaultAppearanceString(tp); }
private void createAppearance( RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont)box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp, color); field.setDefaultAppearanceString(tp); }
private void createAppearance( RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont)box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp, color); field.setDefaultAppearanceString(tp); }
private void createAppearance( RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont)box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp, color); field.setDefaultAppearanceString(tp); }
private void createAppearance( RenderingContext c, ITextOutputDevice outputDevice, BlockBox box, PdfFormField field) { PdfWriter writer = outputDevice.getWriter(); ITextFSFont font = (ITextFSFont)box.getStyle().getFSFont(c); PdfContentByte cb = writer.getDirectContent(); float width = outputDevice.getDeviceLength(getWidth()); float height = outputDevice.getDeviceLength(getHeight()); float fontSize = outputDevice.getDeviceLength(font.getSize2D()); PdfAppearance tp = cb.createAppearance(width, height); tp.setFontAndSize(font.getFontDescription().getFont(), fontSize); FSColor color = box.getStyle().getColor(); setFillColor(tp, color); field.setDefaultAppearanceString(tp); }
public int getWidth(FontContext context, FSFont font, String string) { BaseFont bf = ((ITextFSFont)font).getFontDescription().getFont(); float result = bf.getWidthPoint(string, font.getSize2D()); if (result - Math.floor(result) < TEXT_MEASURING_DELTA) { return (int)result; } else { return (int)Math.ceil(result); } }
public int getWidth(FontContext context, FSFont font, String string) { BaseFont bf = ((ITextFSFont)font).getFontDescription().getFont(); float result = bf.getWidthPoint(string, font.getSize2D()); if (result - Math.floor(result) < TEXT_MEASURING_DELTA) { return (int)result; } else { return (int)Math.ceil(result); } }