📄 charactersprmuncompressor.java
字号:
break; case 0x40: newCHP.setDxaSpace (sprm.getOperand()); break; case 0x41: newCHP.setLidDefault ((short) sprm.getOperand()); break; case 0x42: newCHP.setIco ((byte) sprm.getOperand()); break; case 0x43: newCHP.setHps (sprm.getOperand()); break; case 0x44: byte hpsLvl = (byte) sprm.getOperand(); newCHP.setHps (Math.max (newCHP.getHps () + (hpsLvl * 2), 2)); break; case 0x45: newCHP.setHpsPos ((short) sprm.getOperand()); break; case 0x46: if (sprm.getOperand() != 0) { if (oldCHP.getHpsPos () == 0) { newCHP.setHps (Math.max (newCHP.getHps () + ( -2), 2)); } } else { if (oldCHP.getHpsPos () != 0) { newCHP.setHps (Math.max (newCHP.getHps () + 2, 2)); } } break; case 0x47: /*CharacterProperties genCHP = new CharacterProperties (); genCHP.setFtcAscii (4); genCHP = (CharacterProperties) unCompressProperty (varParam, genCHP, styleSheet); CharacterProperties styleCHP = styleSheet.getStyleDescription (oldCHP. getBaseIstd ()).getCHP (); if (genCHP.isFBold () == newCHP.isFBold ()) { newCHP.setFBold (styleCHP.isFBold ()); } if (genCHP.isFItalic () == newCHP.isFItalic ()) { newCHP.setFItalic (styleCHP.isFItalic ()); } if (genCHP.isFSmallCaps () == newCHP.isFSmallCaps ()) { newCHP.setFSmallCaps (styleCHP.isFSmallCaps ()); } if (genCHP.isFVanish () == newCHP.isFVanish ()) { newCHP.setFVanish (styleCHP.isFVanish ()); } if (genCHP.isFStrike () == newCHP.isFStrike ()) { newCHP.setFStrike (styleCHP.isFStrike ()); } if (genCHP.isFCaps () == newCHP.isFCaps ()) { newCHP.setFCaps (styleCHP.isFCaps ()); } if (genCHP.getFtcAscii () == newCHP.getFtcAscii ()) { newCHP.setFtcAscii (styleCHP.getFtcAscii ()); } if (genCHP.getFtcFE () == newCHP.getFtcFE ()) { newCHP.setFtcFE (styleCHP.getFtcFE ()); } if (genCHP.getFtcOther () == newCHP.getFtcOther ()) { newCHP.setFtcOther (styleCHP.getFtcOther ()); } if (genCHP.getHps () == newCHP.getHps ()) { newCHP.setHps (styleCHP.getHps ()); } if (genCHP.getHpsPos () == newCHP.getHpsPos ()) { newCHP.setHpsPos (styleCHP.getHpsPos ()); } if (genCHP.getKul () == newCHP.getKul ()) { newCHP.setKul (styleCHP.getKul ()); } if (genCHP.getDxaSpace () == newCHP.getDxaSpace ()) { newCHP.setDxaSpace (styleCHP.getDxaSpace ()); } if (genCHP.getIco () == newCHP.getIco ()) { newCHP.setIco (styleCHP.getIco ()); } if (genCHP.getLidDefault () == newCHP.getLidDefault ()) { newCHP.setLidDefault (styleCHP.getLidDefault ()); } if (genCHP.getLidFE () == newCHP.getLidFE ()) { newCHP.setLidFE (styleCHP.getLidFE ()); }*/ break; case 0x48: newCHP.setIss ((byte) sprm.getOperand()); break; case 0x49: newCHP.setHps (LittleEndian.getShort (sprm.getGrpprl(), sprm.getGrpprlOffset())); break; case 0x4a: int increment = LittleEndian.getShort (sprm.getGrpprl(), sprm.getGrpprlOffset()); newCHP.setHps (Math.max (newCHP.getHps () + increment, 8)); break; case 0x4b: newCHP.setHpsKern (sprm.getOperand()); break; case 0x4c:// unCompressCHPOperation (oldCHP, newCHP, 0x47, param, varParam,// styleSheet, opSize); break; case 0x4d: float percentage = (float) sprm.getOperand() / 100.0f; int add = (int) ((float) percentage * (float) newCHP.getHps ()); newCHP.setHps (newCHP.getHps () + add); break; case 0x4e: newCHP.setYsr ((byte) sprm.getOperand()); break; case 0x4f: newCHP.setFtcAscii ((short) sprm.getOperand()); break; case 0x50: newCHP.setFtcFE ((short) sprm.getOperand()); break; case 0x51: newCHP.setFtcOther ((short) sprm.getOperand()); break; case 0x52: // undocumented break; case 0x53: newCHP.setFDStrike (getFlag (sprm.getOperand())); break; case 0x54: newCHP.setFImprint (getFlag (sprm.getOperand())); break; case 0x55: newCHP.setFSpec (getFlag (sprm.getOperand())); break; case 0x56: newCHP.setFObj (getFlag (sprm.getOperand())); break; case 0x57: byte[] buf = sprm.getGrpprl(); int offset = sprm.getGrpprlOffset(); newCHP.setFPropMark (buf[offset]); newCHP.setIbstPropRMark ((short) LittleEndian.getShort (buf, offset + 1)); newCHP.setDttmPropRMark (new DateAndTime(buf, offset +3)); break; case 0x58: newCHP.setFEmboss (getFlag (sprm.getOperand())); break; case 0x59: newCHP.setSfxtText ((byte) sprm.getOperand()); break; // undocumented till 0x61 case 0x5a: break; case 0x5b: break; case 0x5c: break; case 0x5d: break; case 0x5e: break; case 0x5f: break; case 0x60: break; case 0x61: break; case 0x62: byte[] xstDispFldRMark = new byte[32]; buf = sprm.getGrpprl(); offset = sprm.getGrpprlOffset(); newCHP.setFDispFldRMark (buf[offset]); newCHP.setIbstDispFldRMark ((short) LittleEndian.getShort (buf, offset + 1)); newCHP.setDttmDispFldRMark (new DateAndTime(buf, offset + 3)); System.arraycopy (buf, offset + 7, xstDispFldRMark, 0, 32); newCHP.setXstDispFldRMark (xstDispFldRMark); break; case 0x63: newCHP.setIbstRMarkDel ((short) sprm.getOperand()); break; case 0x64: newCHP.setDttmRMarkDel (new DateAndTime(sprm.getGrpprl(), sprm.getGrpprlOffset())); break; case 0x65: newCHP.setBrc (new BorderCode(sprm.getGrpprl(), sprm.getGrpprlOffset())); break; case 0x66: newCHP.setShd (new ShadingDescriptor(sprm.getGrpprl(), sprm.getGrpprlOffset())); break; case 0x67: // Obsolete break; case 0x68: break; // undocumented till 0x6c case 0x69: break; case 0x6a: break; case 0x6b: break; case 0x6c: break; case 0x6d: newCHP.setLidDefault ((short) sprm.getOperand()); break; case 0x6e: newCHP.setLidFE ((short) sprm.getOperand()); break; case 0x6f: newCHP.setIdctHint ((byte) sprm.getOperand()); break; case 0x70: newCHP.setIco24 (sprm.getOperand()); break; } } /** * Converts an int into a boolean. If the int is non-zero, it returns true. * Otherwise it returns false. * * @param x The int to convert. * * @return A boolean whose value depends on x. */ public static boolean getFlag (int x) { if (x != 0) { return true; } else { return false; } } private static boolean getCHPFlag (byte x, boolean oldVal) { /* switch(x) { case 0: return false; case 1: return true; case (byte)0x80: return oldVal; case (byte)0x81: return !oldVal; default: return false; } */ if (x == 0) { return false; } else if (x == 1) { return true; } else if ((x & 0x81) == 0x80) { return oldVal; } else if ((x & 0x81) == 0x81) { return!oldVal; } else { return false; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -