📄 fontrecord.java
字号:
public void setUnderline(byte u) { field_6_underline = u; } /** * set the font family (TODO) * * @param f family */ public void setFamily(byte f) { field_7_family = f; } /** * set the character set * * @param charset - characterset */ public void setCharset(byte charset) { field_8_charset = charset; } /** * set the length of the fontname string * * @param len length of the font name * @see #setFontName(String) */ public void setFontNameLength(byte len) { field_10_font_name_len = len; } /** * set the name of the font * * @param fn - name of the font (i.e. "Arial") */ public void setFontName(String fn) { field_11_font_name = fn; } /** * gets the height of the font in 1/20th point units * * @return fontheight (in points/20) */ public short getFontHeight() { return field_1_font_height; } /** * get the font attributes (see individual bit getters that reference this method) * * @return attribute - the bitmask */ public short getAttributes() { return field_2_attributes; } /** * get whether the font is to be italics or not * * @return italics - whether the font is italics or not * @see #getAttributes() */ public boolean isItalic() { return italic.isSet(field_2_attributes); } /** * get whether the font is to be stricken out or not * * @return strike - whether the font is stricken out or not * @see #getAttributes() */ public boolean isStruckout() { return strikeout.isSet(field_2_attributes); } /** * whether to use the mac outline font style thing (mac only) - Some mac person * should comment this instead of me doing it (since I have no idea) * * @return mac - whether to do that mac font outline thing or not * @see #getAttributes() */ public boolean isMacoutlined() { return macoutline.isSet(field_2_attributes); } /** * whether to use the mac shado font style thing (mac only) - Some mac person * should comment this instead of me doing it (since I have no idea) * * @return mac - whether to do that mac font shadow thing or not * @see #getAttributes() */ public boolean isMacshadowed() { return macshadow.isSet(field_2_attributes); } /** * get the font's color palette index * * @return cpi - font color index */ public short getColorPaletteIndex() { return field_3_color_palette_index; } /** * get the bold weight for this font (100-1000dec or 0x64-0x3e8). Default is * 0x190 for normal and 0x2bc for bold * * @return bw - a number between 100-1000 for the fonts "boldness" */ public short getBoldWeight() { return field_4_bold_weight; } /** * get the type of super or subscript for the font * * @return super or subscript option * @see #SS_NONE * @see #SS_SUPER * @see #SS_SUB */ public short getSuperSubScript() { return field_5_super_sub_script; } /** * get the type of underlining for the font * * @return super or subscript option * * @see #U_NONE * @see #U_SINGLE * @see #U_DOUBLE * @see #U_SINGLE_ACCOUNTING * @see #U_DOUBLE_ACCOUNTING */ public byte getUnderline() { return field_6_underline; } /** * get the font family (TODO) * * @return family */ public byte getFamily() { return field_7_family; } /** * get the character set * * @return charset - characterset */ public byte getCharset() { return field_8_charset; } /** * get the length of the fontname string * * @return length of the font name * @see #getFontName() */ public byte getFontNameLength() { return field_10_font_name_len; } /** * get the name of the font * * @return fn - name of the font (i.e. "Arial") */ public String getFontName() { return field_11_font_name; } public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("[FONT]\n"); buffer.append(" .fontheight = ") .append(Integer.toHexString(getFontHeight())).append("\n"); buffer.append(" .attributes = ") .append(Integer.toHexString(getAttributes())).append("\n"); buffer.append(" .italic = ").append(isItalic()) .append("\n"); buffer.append(" .strikout = ").append(isStruckout()) .append("\n"); buffer.append(" .macoutlined= ").append(isMacoutlined()) .append("\n"); buffer.append(" .macshadowed= ").append(isMacshadowed()) .append("\n"); buffer.append(" .colorpalette = ") .append(Integer.toHexString(getColorPaletteIndex())).append("\n"); buffer.append(" .boldweight = ") .append(Integer.toHexString(getBoldWeight())).append("\n"); buffer.append(" .supersubscript = ") .append(Integer.toHexString(getSuperSubScript())).append("\n"); buffer.append(" .underline = ") .append(Integer.toHexString(getUnderline())).append("\n"); buffer.append(" .family = ") .append(Integer.toHexString(getFamily())).append("\n"); buffer.append(" .charset = ") .append(Integer.toHexString(getCharset())).append("\n"); buffer.append(" .namelength = ") .append(Integer.toHexString(getFontNameLength())).append("\n"); buffer.append(" .fontname = ").append(getFontName()) .append("\n"); buffer.append("[/FONT]\n"); return buffer.toString(); } public int serialize(int offset, byte [] data) { int realflen = getFontNameLength() * 2; LittleEndian.putShort(data, 0 + offset, sid); LittleEndian.putShort( data, 2 + offset, ( short ) (15 + realflen + 1)); // 19 - 4 (sid/len) + font name length = datasize // undocumented single byte (1) LittleEndian.putShort(data, 4 + offset, getFontHeight()); LittleEndian.putShort(data, 6 + offset, getAttributes()); LittleEndian.putShort(data, 8 + offset, getColorPaletteIndex()); LittleEndian.putShort(data, 10 + offset, getBoldWeight()); LittleEndian.putShort(data, 12 + offset, getSuperSubScript()); data[ 14 + offset ] = getUnderline(); data[ 15 + offset ] = getFamily(); data[ 16 + offset ] = getCharset(); data[ 17 + offset ] = (( byte ) 0); data[ 18 + offset ] = getFontNameLength(); data[ 19 + offset ] = ( byte ) 1; if (getFontName() != null) { StringUtil.putUncompressedUnicode(getFontName(), data, 20 + offset); } return getRecordSize(); } public int getRecordSize() { return (getFontNameLength() * 2) + 20; } public short getSid() { return this.sid; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -