📄 stylesheet.java
字号:
case 0x2a: newPAP._fNoAutoHyph = (byte)param; break; case 0x2b: newPAP._dyaHeight = param; break; case 0x2c: newPAP._dcs = param; break; case 0x2d: newPAP._shd = param; break; case 0x2e: newPAP._dyaFromText = param; break; case 0x2f: newPAP._dxaFromText = param; break; case 0x30: newPAP._fLocked = (byte)param; break; case 0x31: newPAP._fWindowControl = (byte)param; break; case 0x32: //undocumented break; case 0x33: newPAP._fKinsoku = (byte)param; break; case 0x34: newPAP._fWordWrap = (byte)param; break; case 0x35: newPAP._fOverflowPunct = (byte)param; break; case 0x36: newPAP._fTopLinePunct = (byte)param; break; case 0x37: newPAP._fAutoSpaceDE = (byte)param; break; case 0x38: newPAP._fAutoSpaceDN = (byte)param; break; case 0x39: newPAP._wAlignFont = param; break; case 0x3a: newPAP._fontAlign = (short)param; break; case 0x3b: //obsolete break; case 0x3e: newPAP._anld = varParam; break; case 0x3f: //don't really need this. spec is confusing regarding this //sprm break; case 0x40: //newPAP._lvl = param; break; case 0x41: //? break; case 0x43: //? break; case 0x44: //? break; case 0x45: if(spra == 6) { newPAP._numrm = varParam; } else { /**@todo handle large PAPX from data stream*/ } break; case 0x47: newPAP._fUsePgsuSettings = (byte)param; break; case 0x48: newPAP._fAdjustRight = (byte)param; break; default: break; } } static void doTAPOperation(TAP newTAP, int operand, int param, byte[] varParam) { switch(operand) { case 0: newTAP._jc = (short)param; break; case 0x01: { int adjust = param - (newTAP._rgdxaCenter[0] + newTAP._dxaGapHalf); for(int x = 0; x < newTAP._itcMac; x++) { newTAP._rgdxaCenter[x] += adjust; } break; } case 0x02: if(newTAP._rgdxaCenter != null) { int adjust = newTAP._dxaGapHalf - param; newTAP._rgdxaCenter[0] += adjust; } newTAP._dxaGapHalf = param; break; case 0x03: newTAP._fCantSplit = getFlag(param); break; case 0x04: newTAP._fTableHeader = getFlag(param); break; case 0x05: newTAP._brcTop[0] = Utils.convertBytesToShort(varParam, 0); newTAP._brcTop[1] = Utils.convertBytesToShort(varParam, 2); newTAP._brcLeft[0] = Utils.convertBytesToShort(varParam, 4); newTAP._brcLeft[1] = Utils.convertBytesToShort(varParam, 6); newTAP._brcBottom[0] = Utils.convertBytesToShort(varParam, 8); newTAP._brcBottom[1] = Utils.convertBytesToShort(varParam, 10); newTAP._brcRight[0] = Utils.convertBytesToShort(varParam, 12); newTAP._brcRight[1] = Utils.convertBytesToShort(varParam, 14); newTAP._brcHorizontal[0] = Utils.convertBytesToShort(varParam, 16); newTAP._brcHorizontal[1] = Utils.convertBytesToShort(varParam, 18); newTAP._brcVertical[0] = Utils.convertBytesToShort(varParam, 20); newTAP._brcVertical[1] = Utils.convertBytesToShort(varParam, 22); break; case 0x06: //obsolete, used in word 1.x break; case 0x07: newTAP._dyaRowHeight = param; break; case 0x08: //I use varParam[0] and newTAP._itcMac interchangably newTAP._itcMac = varParam[0]; newTAP._rgdxaCenter = new short[varParam[0] + 1]; newTAP._rgtc = new TC[varParam[0]]; for(int x = 0; x < newTAP._itcMac; x++) { newTAP._rgdxaCenter[x] = Utils.convertBytesToShort(varParam , 1 + (x * 2)); newTAP._rgtc[x] = TC.convertBytesToTC(varParam, 1 + ((varParam[0] + 1) * 2) + (x * 20)); } newTAP._rgdxaCenter[newTAP._itcMac] = Utils.convertBytesToShort(varParam , 1 + (newTAP._itcMac * 2)); break; case 0x09: /** @todo handle cell shading*/ break; case 0x0a: /** @todo handle word defined table styles*/ break; case 0x20: for(int x = varParam[0]; x < varParam[1]; x++) { if((varParam[2] & 0x08) > 0) { newTAP._rgtc[x]._brcRight[0] = Utils.convertBytesToShort(varParam, 6); newTAP._rgtc[x]._brcRight[1] = Utils.convertBytesToShort(varParam, 8); } else if((varParam[2] & 0x04) > 0) { newTAP._rgtc[x]._brcBottom[0] = Utils.convertBytesToShort(varParam, 6); newTAP._rgtc[x]._brcBottom[1] = Utils.convertBytesToShort(varParam, 8); } else if((varParam[2] & 0x02) > 0) { newTAP._rgtc[x]._brcLeft[0] = Utils.convertBytesToShort(varParam, 6); newTAP._rgtc[x]._brcLeft[1] = Utils.convertBytesToShort(varParam, 8); } else if((varParam[2] & 0x01) > 0) { newTAP._rgtc[x]._brcTop[0] = Utils.convertBytesToShort(varParam, 6); newTAP._rgtc[x]._brcTop[1] = Utils.convertBytesToShort(varParam, 8); } } break; case 0x21: int index = (param & 0xff000000) >> 24; int count = (param & 0x00ff0000) >> 16; int width = (param & 0x0000ffff); short[] rgdxaCenter = new short[newTAP._itcMac + count + 1]; TC[] rgtc = new TC[newTAP._itcMac + count]; if(index >= newTAP._itcMac) { index = newTAP._itcMac; System.arraycopy(newTAP._rgdxaCenter, 0, rgdxaCenter, 0, newTAP._itcMac + 1); System.arraycopy(newTAP._rgtc, 0, rgtc, 0, newTAP._itcMac); } else { //copy rgdxaCenter System.arraycopy(newTAP._rgdxaCenter, 0, rgdxaCenter, 0, index + 1); System.arraycopy(newTAP._rgdxaCenter, index + 1, rgdxaCenter, index + count, (newTAP._itcMac) - (index)); //copy rgtc System.arraycopy(newTAP._rgtc, 0, rgtc, 0, index); System.arraycopy(newTAP._rgtc, index, rgtc, index + count, newTAP._itcMac - index); } for(int x = index; x < index + count; x++) { rgtc[x] = new TC(); rgdxaCenter[x] = (short)(rgdxaCenter[x-1] + width); } rgdxaCenter[index + count] = (short)(rgdxaCenter[(index + count)-1] + width); break; /**@todo handle table sprms from complex files*/ case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: break; default: break; } } static void doSEPOperation(SEP newSEP, int operand, int param, byte[] varParam) { switch(operand) { case 0: newSEP._cnsPgn = (byte)param; break; case 0x1: newSEP._iHeadingPgn = (byte)param; break; case 0x2: newSEP._olstAnn = varParam; break; case 0x3: //not quite sure break; case 0x4: //not quite sure break; case 0x5: newSEP._fEvenlySpaced = getFlag(param); break; case 0x6: newSEP._fUnlocked = getFlag(param); break; case 0x7: newSEP._dmBinFirst = (short)param; break; case 0x8: newSEP._dmBinOther = (short)param; break; case 0x9: newSEP._bkc = (byte)param; break; case 0xa: newSEP._fTitlePage = getFlag(param); break; case 0xb: newSEP._ccolM1 = (short)param; break; case 0xc: newSEP._dxaColumns = param; break; case 0xd: newSEP._fAutoPgn = getFlag(param); break; case 0xe: newSEP._nfcPgn = (byte)param; break; case 0xf: newSEP._dyaPgn = (short)param; break; case 0x10: newSEP._dxaPgn = (short)param; break; case 0x11: newSEP._fPgnRestart = getFlag(param); break; case 0x12: newSEP._fEndNote = getFlag(param); break; case 0x13: newSEP._lnc = (byte)param; break; case 0x14: newSEP._grpfIhdt = (byte)param; break; case 0x15: newSEP._nLnnMod = (short)param; break; case 0x16: newSEP._dxaLnn = param; break; case 0x17: newSEP._dyaHdrTop = param; break; case 0x18: newSEP._dyaHdrBottom = param; break; case 0x19: newSEP._fLBetween = getFlag(param); break; case 0x1a: newSEP._vjc = (byte)param; break; case 0x1b: newSEP._lnnMin = (short)param; break; case 0x1c: newSEP._pgnStart = (short)param; break; case 0x1d: newSEP._dmOrientPage = (byte)param; break; case 0x1e: //nothing break; case 0x1f: newSEP._xaPage = param; break; case 0x20: newSEP._yaPage = param; break; case 0x21: newSEP._dxaLeft = param; break; case 0x22: newSEP._dxaRight = param; break; case 0x23: newSEP._dyaTop = param; break; case 0x24: newSEP._dyaBottom = param; break; case 0x25: newSEP._dzaGutter = param; break; case 0x26: newSEP._dmPaperReq = (short)param; break; case 0x27: newSEP._fPropMark = getFlag(varParam[0]); break; case 0x28: break; case 0x29: break; case 0x2a: break; case 0x2b: newSEP._brcTop[0] = (short)(param & 0xffff); newSEP._brcTop[1] = (short)((param & 0xffff0000) >> 16); break; case 0x2c: newSEP._brcLeft[0] = (short)(param & 0xffff); newSEP._brcLeft[1] = (short)((param & 0xffff0000) >> 16); break; case 0x2d: newSEP._brcBottom[0] = (short)(param & 0xffff); newSEP._brcBottom[1] = (short)((param & 0xffff0000) >> 16); break; case 0x2e: newSEP._brcRight[0] = (short)(param & 0xffff); newSEP._brcRight[1] = (short)((param & 0xffff0000) >> 16); break; case 0x2f: newSEP._pgbProp = (short)param; break; case 0x30: newSEP._dxtCharSpace = param; break; case 0x31: newSEP._dyaLinePitch = param; break; case 0x33: newSEP._wTextFlow = (short)param; break; default: break; } } 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; } } public static boolean getFlag(int x) { if(x != 0) { return true; } else { return false; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -