package com.tom_roush.pdfbox.pdmodel.graphics.state; import com.tom_roush.pdfbox.pdmodel.font.PDFont; /** * This class will hold the current state of the text parameters when executing a * content stream. * * @author Ben Litchfield */ public class PDTextState implements Cloneable { private float characterSpacing = 0; private float wordSpacing = 0; private float horizontalScaling = 100; private float leading = 0; private PDFont font; private float fontSize; private RenderingMode renderingMode = RenderingMode.FILL; private float rise = 0; private boolean knockout = true; /** * Get the value of the characterSpacing. * * @return The current characterSpacing. */ public float getCharacterSpacing() { return characterSpacing; } /** * Set the value of the characterSpacing. * * @param value The characterSpacing. */ public void setCharacterSpacing(float value) { characterSpacing = value; } /** * Get the value of the wordSpacing. * * @return The wordSpacing. */ public float getWordSpacing() { return wordSpacing; } /** * Set the value of the wordSpacing. * * @param value The wordSpacing. */ public void setWordSpacing(float value) { wordSpacing = value; } /** * Get the value of the horizontalScaling. The default is 100. This value * is the percentage value 0-100 and not 0-1. So for mathematical operations * you will probably need to divide by 100 first. * * @return The horizontalScaling. */ public float getHorizontalScaling() { return horizontalScaling; } /** * Set the value of the horizontalScaling. * * @param value The horizontalScaling. */ public void setHorizontalScaling(float value) { horizontalScaling = value; } /** * Get the value of the leading. * * @return The leading. */ public float getLeading() { return leading; } /** * Set the value of the leading. * * @param value The leading. */ public void setLeading(float value) { leading = value; } /** * Get the value of the font. * * @return The font. */ public PDFont getFont() { return font; } /** * Set the value of the font. * * @param value The font. */ public void setFont(PDFont value) { font = value; } /** * Get the value of the fontSize. * * @return The fontSize. */ public float getFontSize() { return fontSize; } /** * Set the value of the fontSize. * * @param value The fontSize. */ public void setFontSize(float value) { fontSize = value; } /** * Get the value of the renderingMode. * * @return The renderingMode. */ public RenderingMode getRenderingMode() { return renderingMode; } /** * Set the value of the renderingMode. * * @param renderingMode The renderingMode. */ public void setRenderingMode(RenderingMode renderingMode) { this.renderingMode = renderingMode; } /** * Get the value of the rise. * * @return The rise. */ public float getRise() { return rise; } /** * Set the value of the rise. * * @param value The rise. */ public void setRise(float value) { rise = value; } /** * Get the value of the knockout. * * @return The knockout. */ public boolean getKnockoutFlag() { return knockout; } /** * Set the value of the knockout. * * @param value The knockout. */ public void setKnockoutFlag(boolean value) { knockout = value; } @Override public PDTextState clone() { try { return (PDTextState)super.clone(); } catch (CloneNotSupportedException e) { // should not happen throw new RuntimeException(e); } } }