![JAR search and dependency download from the Maven repository](/logo.png)
fr.w3blog.zpl.model.element.ZebraText Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of zebra-zpl Show documentation
Show all versions of zebra-zpl Show documentation
Java Api for Zepra Zpl generator
package fr.w3blog.zpl.model.element;
import java.awt.Font;
import java.awt.Graphics2D;
import fr.w3blog.zpl.constant.ZebraFont;
import fr.w3blog.zpl.constant.ZebraRotation;
import fr.w3blog.zpl.model.PrinterOptions;
import fr.w3blog.zpl.model.ZebraElement;
import fr.w3blog.zpl.utils.ZplUtils;
/**
* Zebra element to add Text to specified position.
*
* @author ttropard
*
*/
public class ZebraText extends ZebraElement {
ZebraFont zebraFont = null;
/**
* Explain Font Size (11,13,14).
* Not in dots.
*/
Integer fontSize = null;
ZebraRotation zebraRotation = ZebraRotation.NORMAL;
String text;
public ZebraText(String text) {
this.text = text;
}
public ZebraText(String text, int fontSize) {
this.fontSize = fontSize;
this.text = text;
}
public ZebraText(String text, ZebraFont zebraFont, int fontSize) {
this.zebraFont = zebraFont;
this.fontSize = fontSize;
this.text = text;
}
public ZebraText(String text, ZebraFont zebraFont, int fontSize, ZebraRotation zebraRotation) {
this.zebraFont = zebraFont;
this.zebraRotation = zebraRotation;
this.fontSize = fontSize;
this.text = text;
}
public ZebraText(int positionX, int positionY, String text) {
this.text = text;
this.positionX = positionX;
this.positionY = positionY;
}
public ZebraText(int positionX, int positionY, String text, int fontSize) {
this.fontSize = fontSize;
this.text = text;
this.positionX = positionX;
this.positionY = positionY;
}
public ZebraText(int positionX, int positionY, String text, ZebraFont zebraFont, int fontSize, ZebraRotation zebraRotation) {
this.zebraFont = zebraFont;
this.fontSize = fontSize;
this.zebraRotation = zebraRotation;
this.text = text;
this.positionX = positionX;
this.positionY = positionY;
}
public ZebraText(int positionX, int positionY, String text, ZebraFont zebraFont, int fontSize) {
this.zebraFont = zebraFont;
this.fontSize = fontSize;
this.text = text;
this.positionX = positionX;
this.positionY = positionY;
}
/* (non-Javadoc)
* @see fr.w3blog.zpl.model.element.ZebraElement#getZplCode(fr.w3blog.zpl.model.PrinterOptions)
*/
@Override
public String getZplCode(PrinterOptions printerOptions) {
StringBuffer zpl = new StringBuffer();
zpl.append(this.getZplCodePosition());
if (fontSize != null && zebraFont != null) {
//This element has specified size and font
Integer[] dimension = ZplUtils.extractDotsFromFont(zebraFont, fontSize, printerOptions.getZebraPPP());
zpl.append(ZplUtils.zplCommand("A", zebraFont.getLetter(), zebraRotation.getLetter(), dimension[0], dimension[1]));
} else if (fontSize != null && printerOptions.getDefaultZebraFont() != null) {
//This element has specified size, but with default font
Integer[] dimension = ZplUtils.extractDotsFromFont(printerOptions.getDefaultZebraFont(), fontSize, printerOptions.getZebraPPP());
zpl.append(ZplUtils.zplCommand("A", printerOptions.getDefaultZebraFont().getLetter(), zebraRotation.getLetter(), dimension[0], dimension[1]));
}
zpl.append("^FH\\^FD");//We allow hexadecimal and start element
zpl.append(ZplUtils.convertAccentToZplAsciiHexa(text));
zpl.append(ZplUtils.zplCommandSautLigne("FS"));
return zpl.toString();
}
/**
* Used to draw label preview.
* This method should be overloader by child class.
*
* Default draw a rectangle
*
* @param graphic
*/
public void drawPreviewGraphic(PrinterOptions printerOptions, Graphics2D graphic) {
if (defaultDrawGraphic) {
int top = 0;
int left = 0;
if (positionX != null) {
left = ZplUtils.convertPointInPixel(positionX);
}
if (positionY != null) {
top = ZplUtils.convertPointInPixel(positionY);
}
Font font = null;
if (fontSize != null && zebraFont != null) {
//This element has specified size and font
Integer[] dimension = ZplUtils.extractDotsFromFont(printerOptions.getDefaultZebraFont(), fontSize, printerOptions.getZebraPPP());
font = new Font(ZebraFont.findBestEquivalentFontForPreview(zebraFont), Font.BOLD, dimension[0]);
} else if (fontSize != null && printerOptions.getDefaultZebraFont() != null) {
//This element has specified size, but with default font
Integer[] dimensionPoint = ZplUtils.extractDotsFromFont(printerOptions.getDefaultZebraFont(), fontSize, printerOptions.getZebraPPP());
font = new Font(ZebraFont.findBestEquivalentFontForPreview(printerOptions.getDefaultZebraFont()), Font.BOLD, Math.round(dimensionPoint[0] / 1.33F));
} else {
//Default font on Printer Zebra
Integer[] dimensionPoint = ZplUtils.extractDotsFromFont(printerOptions.getDefaultZebraFont(), 15, printerOptions.getZebraPPP());
font = new Font(ZebraFont.findBestEquivalentFontForPreview(ZebraFont.ZEBRA_A), Font.BOLD, dimensionPoint[0]);
}
drawTopString(graphic, font, text, left, top);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy