📄 dopabstracttype.java
字号:
/* ==================================================================== Copyright 2002-2004 Apache Software Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.==================================================================== */ package org.apache.poi.hwpf.model.types;import org.apache.poi.util.BitField;import org.apache.poi.util.LittleEndian;import org.apache.poi.util.StringUtil;import org.apache.poi.util.HexDump;import org.apache.poi.hdf.model.hdftypes.HDFType;import org.apache.poi.hwpf.usermodel.*;/** * Document Properties. * NOTE: This source is automatically generated please do not modify this file. Either subclass or * remove the record in src/records/definitions. * @author S. Ryan Ackley */public abstract class DOPAbstractType implements HDFType{ protected byte field_1_formatFlags; private static BitField fFacingPages = new BitField(0x01); private static BitField fWidowControl = new BitField(0x02); private static BitField fPMHMainDoc = new BitField(0x04); private static BitField grfSupression = new BitField(0x18); private static BitField fpc = new BitField(0x60); private static BitField unused1 = new BitField(0x80); protected byte field_2_unused2; protected short field_3_footnoteInfo; private static BitField rncFtn = new BitField(0x0003); private static BitField nFtn = new BitField(0xfffc); protected byte field_4_fOutlineDirtySave; protected byte field_5_docinfo; private static BitField fOnlyMacPics = new BitField(0x01); private static BitField fOnlyWinPics = new BitField(0x02); private static BitField fLabelDoc = new BitField(0x04); private static BitField fHyphCapitals = new BitField(0x08); private static BitField fAutoHyphen = new BitField(0x10); private static BitField fFormNoFields = new BitField(0x20); private static BitField fLinkStyles = new BitField(0x40); private static BitField fRevMarking = new BitField(0x80); protected byte field_6_docinfo1; private static BitField fBackup = new BitField(0x01); private static BitField fExactCWords = new BitField(0x02); private static BitField fPagHidden = new BitField(0x04); private static BitField fPagResults = new BitField(0x08); private static BitField fLockAtn = new BitField(0x10); private static BitField fMirrorMargins = new BitField(0x20); private static BitField unused3 = new BitField(0x40); private static BitField fDfltTrueType = new BitField(0x80); protected byte field_7_docinfo2; private static BitField fPagSupressTopSpacing = new BitField(0x01); private static BitField fProtEnabled = new BitField(0x02); private static BitField fDispFormFldSel = new BitField(0x04); private static BitField fRMView = new BitField(0x08); private static BitField fRMPrint = new BitField(0x10); private static BitField unused4 = new BitField(0x20); private static BitField fLockRev = new BitField(0x40); private static BitField fEmbedFonts = new BitField(0x80); protected short field_8_docinfo3; private static BitField oldfNoTabForInd = new BitField(0x0001); private static BitField oldfNoSpaceRaiseLower = new BitField(0x0002); private static BitField oldfSuppressSpbfAfterPageBreak = new BitField(0x0004); private static BitField oldfWrapTrailSpaces = new BitField(0x0008); private static BitField oldfMapPrintTextColor = new BitField(0x0010); private static BitField oldfNoColumnBalance = new BitField(0x0020); private static BitField oldfConvMailMergeEsc = new BitField(0x0040); private static BitField oldfSupressTopSpacing = new BitField(0x0080); private static BitField oldfOrigWordTableRules = new BitField(0x0100); private static BitField oldfTransparentMetafiles = new BitField(0x0200); private static BitField oldfShowBreaksInFrames = new BitField(0x0400); private static BitField oldfSwapBordersFacingPgs = new BitField(0x0800); private static BitField unused5 = new BitField(0xf000); protected int field_9_dxaTab; protected int field_10_wSpare; protected int field_11_dxaHotz; protected int field_12_cConsexHypLim; protected int field_13_wSpare2; protected int field_14_dttmCreated; protected int field_15_dttmRevised; protected int field_16_dttmLastPrint; protected int field_17_nRevision; protected int field_18_tmEdited; protected int field_19_cWords; protected int field_20_cCh; protected int field_21_cPg; protected int field_22_cParas; protected short field_23_Edn; private static BitField rncEdn = new BitField(0x0003); private static BitField nEdn = new BitField(0xfffc); protected short field_24_Edn1; private static BitField epc = new BitField(0x0003); private static BitField nfcFtnRef1 = new BitField(0x003c); private static BitField nfcEdnRef1 = new BitField(0x03c0); private static BitField fPrintFormData = new BitField(0x0400); private static BitField fSaveFormData = new BitField(0x0800); private static BitField fShadeFormData = new BitField(0x1000); private static BitField fWCFtnEdn = new BitField(0x8000); protected int field_25_cLines; protected int field_26_cWordsFtnEnd; protected int field_27_cChFtnEdn; protected short field_28_cPgFtnEdn; protected int field_29_cParasFtnEdn; protected int field_30_cLinesFtnEdn; protected int field_31_lKeyProtDoc; protected short field_32_view; private static BitField wvkSaved = new BitField(0x0007); private static BitField wScaleSaved = new BitField(0x0ff8); private static BitField zkSaved = new BitField(0x3000); private static BitField fRotateFontW6 = new BitField(0x4000); private static BitField iGutterPos = new BitField(0x8000); protected int field_33_docinfo4; private static BitField fNoTabForInd = new BitField(0x00000001); private static BitField fNoSpaceRaiseLower = new BitField(0x00000002); private static BitField fSupressSpdfAfterPageBreak = new BitField(0x00000004); private static BitField fWrapTrailSpaces = new BitField(0x00000008); private static BitField fMapPrintTextColor = new BitField(0x00000010); private static BitField fNoColumnBalance = new BitField(0x00000020); private static BitField fConvMailMergeEsc = new BitField(0x00000040); private static BitField fSupressTopSpacing = new BitField(0x00000080); private static BitField fOrigWordTableRules = new BitField(0x00000100); private static BitField fTransparentMetafiles = new BitField(0x00000200); private static BitField fShowBreaksInFrames = new BitField(0x00000400); private static BitField fSwapBordersFacingPgs = new BitField(0x00000800); private static BitField fSuppressTopSPacingMac5 = new BitField(0x00010000); private static BitField fTruncDxaExpand = new BitField(0x00020000); private static BitField fPrintBodyBeforeHdr = new BitField(0x00040000); private static BitField fNoLeading = new BitField(0x00080000); private static BitField fMWSmallCaps = new BitField(0x00200000); protected short field_34_adt; protected byte[] field_35_doptypography; protected byte[] field_36_dogrid; protected short field_37_docinfo5; private static BitField lvl = new BitField(0x001e); private static BitField fGramAllDone = new BitField(0x0020); private static BitField fGramAllClean = new BitField(0x0040); private static BitField fSubsetFonts = new BitField(0x0080); private static BitField fHideLastVersion = new BitField(0x0100); private static BitField fHtmlDoc = new BitField(0x0200); private static BitField fSnapBorder = new BitField(0x0800); private static BitField fIncludeHeader = new BitField(0x1000); private static BitField fIncludeFooter = new BitField(0x2000); private static BitField fForcePageSizePag = new BitField(0x4000); private static BitField fMinFontSizePag = new BitField(0x8000); protected short field_38_docinfo6; private static BitField fHaveVersions = new BitField(0x0001); private static BitField fAutoVersions = new BitField(0x0002); protected byte[] field_39_asumyi; protected int field_40_cChWS; protected int field_41_cChWSFtnEdn; protected int field_42_grfDocEvents; protected int field_43_virusinfo; private static BitField fVirusPrompted = new BitField(0x0001); private static BitField fVirusLoadSafe = new BitField(0x0002); private static BitField KeyVirusSession30 = new BitField(0xfffffffc); protected byte[] field_44_Spare; protected int field_45_reserved1; protected int field_46_reserved2; protected int field_47_cDBC; protected int field_48_cDBCFtnEdn; protected int field_49_reserved; protected short field_50_nfcFtnRef; protected short field_51_nfcEdnRef; protected short field_52_hpsZoonFontPag; protected short field_53_dywDispPag; public DOPAbstractType() { } protected void fillFields(byte [] data, int offset) { field_1_formatFlags = data[ 0x0 + offset ]; field_2_unused2 = data[ 0x1 + offset ]; field_3_footnoteInfo = LittleEndian.getShort(data, 0x2 + offset); field_4_fOutlineDirtySave = data[ 0x4 + offset ]; field_5_docinfo = data[ 0x5 + offset ]; field_6_docinfo1 = data[ 0x6 + offset ]; field_7_docinfo2 = data[ 0x7 + offset ]; field_8_docinfo3 = LittleEndian.getShort(data, 0x8 + offset); field_9_dxaTab = LittleEndian.getShort(data, 0xa + offset); field_10_wSpare = LittleEndian.getShort(data, 0xc + offset); field_11_dxaHotz = LittleEndian.getShort(data, 0xe + offset); field_12_cConsexHypLim = LittleEndian.getShort(data, 0x10 + offset); field_13_wSpare2 = LittleEndian.getShort(data, 0x12 + offset); field_14_dttmCreated = LittleEndian.getInt(data, 0x14 + offset); field_15_dttmRevised = LittleEndian.getInt(data, 0x18 + offset); field_16_dttmLastPrint = LittleEndian.getInt(data, 0x1c + offset); field_17_nRevision = LittleEndian.getShort(data, 0x20 + offset); field_18_tmEdited = LittleEndian.getInt(data, 0x22 + offset); field_19_cWords = LittleEndian.getInt(data, 0x26 + offset); field_20_cCh = LittleEndian.getInt(data, 0x2a + offset); field_21_cPg = LittleEndian.getShort(data, 0x2e + offset); field_22_cParas = LittleEndian.getInt(data, 0x30 + offset); field_23_Edn = LittleEndian.getShort(data, 0x34 + offset); field_24_Edn1 = LittleEndian.getShort(data, 0x36 + offset); field_25_cLines = LittleEndian.getInt(data, 0x38 + offset); field_26_cWordsFtnEnd = LittleEndian.getInt(data, 0x3c + offset); field_27_cChFtnEdn = LittleEndian.getInt(data, 0x40 + offset); field_28_cPgFtnEdn = LittleEndian.getShort(data, 0x44 + offset); field_29_cParasFtnEdn = LittleEndian.getInt(data, 0x46 + offset); field_30_cLinesFtnEdn = LittleEndian.getInt(data, 0x4a + offset); field_31_lKeyProtDoc = LittleEndian.getInt(data, 0x4e + offset); field_32_view = LittleEndian.getShort(data, 0x52 + offset); field_33_docinfo4 = LittleEndian.getInt(data, 0x54 + offset); field_34_adt = LittleEndian.getShort(data, 0x58 + offset); field_35_doptypography = LittleEndian.getByteArray(data, 0x5a + offset,310); field_36_dogrid = LittleEndian.getByteArray(data, 0x190 + offset,10); field_37_docinfo5 = LittleEndian.getShort(data, 0x19a + offset); field_38_docinfo6 = LittleEndian.getShort(data, 0x19c + offset); field_39_asumyi = LittleEndian.getByteArray(data, 0x19e + offset,12); field_40_cChWS = LittleEndian.getInt(data, 0x1aa + offset); field_41_cChWSFtnEdn = LittleEndian.getInt(data, 0x1ae + offset); field_42_grfDocEvents = LittleEndian.getInt(data, 0x1b2 + offset); field_43_virusinfo = LittleEndian.getInt(data, 0x1b6 + offset); field_44_Spare = LittleEndian.getByteArray(data, 0x1ba + offset,30); field_45_reserved1 = LittleEndian.getInt(data, 0x1d8 + offset); field_46_reserved2 = LittleEndian.getInt(data, 0x1dc + offset); field_47_cDBC = LittleEndian.getInt(data, 0x1e0 + offset); field_48_cDBCFtnEdn = LittleEndian.getInt(data, 0x1e4 + offset); field_49_reserved = LittleEndian.getInt(data, 0x1e8 + offset); field_50_nfcFtnRef = LittleEndian.getShort(data, 0x1ec + offset); field_51_nfcEdnRef = LittleEndian.getShort(data, 0x1ee + offset); field_52_hpsZoonFontPag = LittleEndian.getShort(data, 0x1f0 + offset); field_53_dywDispPag = LittleEndian.getShort(data, 0x1f2 + offset); } public void serialize(byte[] data, int offset) { data[ 0x0 + offset] = field_1_formatFlags;; data[ 0x1 + offset] = field_2_unused2;; LittleEndian.putShort(data, 0x2 + offset, (short)field_3_footnoteInfo);; data[ 0x4 + offset] = field_4_fOutlineDirtySave;; data[ 0x5 + offset] = field_5_docinfo;; data[ 0x6 + offset] = field_6_docinfo1;; data[ 0x7 + offset] = field_7_docinfo2;; LittleEndian.putShort(data, 0x8 + offset, (short)field_8_docinfo3);; LittleEndian.putShort(data, 0xa + offset, (short)field_9_dxaTab);; LittleEndian.putShort(data, 0xc + offset, (short)field_10_wSpare);; LittleEndian.putShort(data, 0xe + offset, (short)field_11_dxaHotz);; LittleEndian.putShort(data, 0x10 + offset, (short)field_12_cConsexHypLim);; LittleEndian.putShort(data, 0x12 + offset, (short)field_13_wSpare2);; LittleEndian.putInt(data, 0x14 + offset, field_14_dttmCreated);; LittleEndian.putInt(data, 0x18 + offset, field_15_dttmRevised);; LittleEndian.putInt(data, 0x1c + offset, field_16_dttmLastPrint);; LittleEndian.putShort(data, 0x20 + offset, (short)field_17_nRevision);; LittleEndian.putInt(data, 0x22 + offset, field_18_tmEdited);; LittleEndian.putInt(data, 0x26 + offset, field_19_cWords);; LittleEndian.putInt(data, 0x2a + offset, field_20_cCh);; LittleEndian.putShort(data, 0x2e + offset, (short)field_21_cPg);; LittleEndian.putInt(data, 0x30 + offset, field_22_cParas);; LittleEndian.putShort(data, 0x34 + offset, (short)field_23_Edn);; LittleEndian.putShort(data, 0x36 + offset, (short)field_24_Edn1);; LittleEndian.putInt(data, 0x38 + offset, field_25_cLines);; LittleEndian.putInt(data, 0x3c + offset, field_26_cWordsFtnEnd);; LittleEndian.putInt(data, 0x40 + offset, field_27_cChFtnEdn);; LittleEndian.putShort(data, 0x44 + offset, (short)field_28_cPgFtnEdn);; LittleEndian.putInt(data, 0x46 + offset, field_29_cParasFtnEdn);; LittleEndian.putInt(data, 0x4a + offset, field_30_cLinesFtnEdn);; LittleEndian.putInt(data, 0x4e + offset, field_31_lKeyProtDoc);; LittleEndian.putShort(data, 0x52 + offset, (short)field_32_view);; LittleEndian.putInt(data, 0x54 + offset, field_33_docinfo4);; LittleEndian.putShort(data, 0x58 + offset, (short)field_34_adt);; System.arraycopy(field_35_doptypography, 0, data, 0x5a + offset, field_35_doptypography.length);; System.arraycopy(field_36_dogrid, 0, data, 0x190 + offset, field_36_dogrid.length);; LittleEndian.putShort(data, 0x19a + offset, (short)field_37_docinfo5);; LittleEndian.putShort(data, 0x19c + offset, (short)field_38_docinfo6);; System.arraycopy(field_39_asumyi, 0, data, 0x19e + offset, field_39_asumyi.length);; LittleEndian.putInt(data, 0x1aa + offset, field_40_cChWS);; LittleEndian.putInt(data, 0x1ae + offset, field_41_cChWSFtnEdn);; LittleEndian.putInt(data, 0x1b2 + offset, field_42_grfDocEvents);; LittleEndian.putInt(data, 0x1b6 + offset, field_43_virusinfo);; System.arraycopy(field_44_Spare, 0, data, 0x1ba + offset, field_44_Spare.length);; LittleEndian.putInt(data, 0x1d8 + offset, field_45_reserved1);; LittleEndian.putInt(data, 0x1dc + offset, field_46_reserved2);; LittleEndian.putInt(data, 0x1e0 + offset, field_47_cDBC);; LittleEndian.putInt(data, 0x1e4 + offset, field_48_cDBCFtnEdn);; LittleEndian.putInt(data, 0x1e8 + offset, field_49_reserved);; LittleEndian.putShort(data, 0x1ec + offset, (short)field_50_nfcFtnRef);; LittleEndian.putShort(data, 0x1ee + offset, (short)field_51_nfcEdnRef);; LittleEndian.putShort(data, 0x1f0 + offset, (short)field_52_hpsZoonFontPag);; LittleEndian.putShort(data, 0x1f2 + offset, (short)field_53_dywDispPag);; } public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append("[DOP]\n"); buffer.append(" .formatFlags = "); buffer.append(" (").append(getFormatFlags()).append(" )\n"); buffer.append(" .fFacingPages = ").append(isFFacingPages()).append('\n'); buffer.append(" .fWidowControl = ").append(isFWidowControl()).append('\n'); buffer.append(" .fPMHMainDoc = ").append(isFPMHMainDoc()).append('\n'); buffer.append(" .grfSupression = ").append(getGrfSupression()).append('\n'); buffer.append(" .fpc = ").append(getFpc()).append('\n'); buffer.append(" .unused1 = ").append(isUnused1()).append('\n'); buffer.append(" .unused2 = "); buffer.append(" (").append(getUnused2()).append(" )\n"); buffer.append(" .footnoteInfo = "); buffer.append(" (").append(getFootnoteInfo()).append(" )\n"); buffer.append(" .rncFtn = ").append(getRncFtn()).append('\n'); buffer.append(" .nFtn = ").append(getNFtn()).append('\n'); buffer.append(" .fOutlineDirtySave = "); buffer.append(" (").append(getFOutlineDirtySave()).append(" )\n"); buffer.append(" .docinfo = "); buffer.append(" (").append(getDocinfo()).append(" )\n"); buffer.append(" .fOnlyMacPics = ").append(isFOnlyMacPics()).append('\n'); buffer.append(" .fOnlyWinPics = ").append(isFOnlyWinPics()).append('\n'); buffer.append(" .fLabelDoc = ").append(isFLabelDoc()).append('\n'); buffer.append(" .fHyphCapitals = ").append(isFHyphCapitals()).append('\n'); buffer.append(" .fAutoHyphen = ").append(isFAutoHyphen()).append('\n'); buffer.append(" .fFormNoFields = ").append(isFFormNoFields()).append('\n'); buffer.append(" .fLinkStyles = ").append(isFLinkStyles()).append('\n'); buffer.append(" .fRevMarking = ").append(isFRevMarking()).append('\n'); buffer.append(" .docinfo1 = "); buffer.append(" (").append(getDocinfo1()).append(" )\n"); buffer.append(" .fBackup = ").append(isFBackup()).append('\n'); buffer.append(" .fExactCWords = ").append(isFExactCWords()).append('\n'); buffer.append(" .fPagHidden = ").append(isFPagHidden()).append('\n'); buffer.append(" .fPagResults = ").append(isFPagResults()).append('\n'); buffer.append(" .fLockAtn = ").append(isFLockAtn()).append('\n'); buffer.append(" .fMirrorMargins = ").append(isFMirrorMargins()).append('\n'); buffer.append(" .unused3 = ").append(isUnused3()).append('\n'); buffer.append(" .fDfltTrueType = ").append(isFDfltTrueType()).append('\n'); buffer.append(" .docinfo2 = "); buffer.append(" (").append(getDocinfo2()).append(" )\n"); buffer.append(" .fPagSupressTopSpacing = ").append(isFPagSupressTopSpacing()).append('\n'); buffer.append(" .fProtEnabled = ").append(isFProtEnabled()).append('\n'); buffer.append(" .fDispFormFldSel = ").append(isFDispFormFldSel()).append('\n'); buffer.append(" .fRMView = ").append(isFRMView()).append('\n'); buffer.append(" .fRMPrint = ").append(isFRMPrint()).append('\n'); buffer.append(" .unused4 = ").append(isUnused4()).append('\n'); buffer.append(" .fLockRev = ").append(isFLockRev()).append('\n'); buffer.append(" .fEmbedFonts = ").append(isFEmbedFonts()).append('\n'); buffer.append(" .docinfo3 = "); buffer.append(" (").append(getDocinfo3()).append(" )\n"); buffer.append(" .oldfNoTabForInd = ").append(isOldfNoTabForInd()).append('\n'); buffer.append(" .oldfNoSpaceRaiseLower = ").append(isOldfNoSpaceRaiseLower()).append('\n'); buffer.append(" .oldfSuppressSpbfAfterPageBreak = ").append(isOldfSuppressSpbfAfterPageBreak()).append('\n'); buffer.append(" .oldfWrapTrailSpaces = ").append(isOldfWrapTrailSpaces()).append('\n'); buffer.append(" .oldfMapPrintTextColor = ").append(isOldfMapPrintTextColor()).append('\n'); buffer.append(" .oldfNoColumnBalance = ").append(isOldfNoColumnBalance()).append('\n'); buffer.append(" .oldfConvMailMergeEsc = ").append(isOldfConvMailMergeEsc()).append('\n'); buffer.append(" .oldfSupressTopSpacing = ").append(isOldfSupressTopSpacing()).append('\n'); buffer.append(" .oldfOrigWordTableRules = ").append(isOldfOrigWordTableRules()).append('\n'); buffer.append(" .oldfTransparentMetafiles = ").append(isOldfTransparentMetafiles()).append('\n'); buffer.append(" .oldfShowBreaksInFrames = ").append(isOldfShowBreaksInFrames()).append('\n'); buffer.append(" .oldfSwapBordersFacingPgs = ").append(isOldfSwapBordersFacingPgs()).append('\n'); buffer.append(" .unused5 = ").append(getUnused5()).append('\n'); buffer.append(" .dxaTab = "); buffer.append(" (").append(getDxaTab()).append(" )\n"); buffer.append(" .wSpare = "); buffer.append(" (").append(getWSpare()).append(" )\n"); buffer.append(" .dxaHotz = "); buffer.append(" (").append(getDxaHotz()).append(" )\n"); buffer.append(" .cConsexHypLim = "); buffer.append(" (").append(getCConsexHypLim()).append(" )\n"); buffer.append(" .wSpare2 = "); buffer.append(" (").append(getWSpare2()).append(" )\n"); buffer.append(" .dttmCreated = "); buffer.append(" (").append(getDttmCreated()).append(" )\n"); buffer.append(" .dttmRevised = "); buffer.append(" (").append(getDttmRevised()).append(" )\n"); buffer.append(" .dttmLastPrint = "); buffer.append(" (").append(getDttmLastPrint()).append(" )\n"); buffer.append(" .nRevision = "); buffer.append(" (").append(getNRevision()).append(" )\n"); buffer.append(" .tmEdited = "); buffer.append(" (").append(getTmEdited()).append(" )\n"); buffer.append(" .cWords = "); buffer.append(" (").append(getCWords()).append(" )\n"); buffer.append(" .cCh = "); buffer.append(" (").append(getCCh()).append(" )\n"); buffer.append(" .cPg = "); buffer.append(" (").append(getCPg()).append(" )\n"); buffer.append(" .cParas = "); buffer.append(" (").append(getCParas()).append(" )\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -