Browse Source

默认字体使用 SIMSUN.TTF

master
han\hanst 2 days ago
parent
commit
9866bbcfe2
  1. 15
      src/main/java/com/gaotao/modules/base/utils/ZplGenerator.java

15
src/main/java/com/gaotao/modules/base/utils/ZplGenerator.java

@ -6,8 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import com.google.zxing.*;
import com.google.zxing.client.j2se.MatrixToImageWriter;
@ -17,10 +16,6 @@ import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Collections;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
/**
@ -29,7 +24,7 @@ import java.util.regex.Pattern;
*/
@Slf4j
public class ZplGenerator {
private static final String DEFAULT_FONT_FILE = "ARIAL UNICODE MS.TTF";
private static final String DEFAULT_FONT_FILE = "SIMSUN.TTF";
/**
* 越南文常用字符覆盖
* - 基础越南文字母Ă/ă Â/â Ê/ê Ô/ô Ơ/ơ Ư/ư Đ/đ
@ -45,7 +40,7 @@ public class ZplGenerator {
private static final int VIETNAMESE_BITMAP_Y_OFFSET = -5;
/**
* 兼容既有标签默认字体仍绑定J槽位
* 历史模板大量依赖 default -> ^CWJ,E:* 的行为默认字体改为 ARIAL UNICODE MS 仍保持 J 槽位
* 历史模板大量依赖 default -> ^CWJ,E:* 的行为默认字体使用 SIMSUN.TTF仍保持 J 槽位
* 避免中文预览/打印丢失
*/
private static final String DEFAULT_FONT_LETTER = "J";
@ -165,7 +160,7 @@ public class ZplGenerator {
if (Boolean.TRUE.equals(element.getIsChecked())) {
zpl.append("^FO").append(x - 60).append(",").append(y)
.append("^GB45,45,2,B,0^FS ^FO").append(x - 50).append(",").append(y + 10)
.append("^AJN,35,35^FD√^FS\n");
.append("^CI28^CWJ,E:").append(DEFAULT_FONT_FILE).append("^AJN,35,35^FD√^FS\n");
}
// 业务原因越南文在部分机型的TTF字形渲染存在缺字改走位图可规避固件字形缺失
@ -411,7 +406,7 @@ public class ZplGenerator {
private String resolveBitmapFontFamily(String fontFamily) {
if (fontFamily == null || fontFamily.trim().isEmpty() || "default".equalsIgnoreCase(fontFamily.trim())) {
return "Arial Unicode MS";
return "SimSun";
}
String normalized = fontFamily.trim();
if (normalized.toUpperCase(Locale.ROOT).endsWith(".TTF")) {

Loading…
Cancel
Save