本文整理汇总了C#中NPOI.DDF.EscherContainerRecord.AddChildRecord方法的典型用法代码示例。如果您正苦于以下问题:C# EscherContainerRecord.AddChildRecord方法的具体用法?C# EscherContainerRecord.AddChildRecord怎么用?C# EscherContainerRecord.AddChildRecord使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NPOI.DDF.EscherContainerRecord
的用法示例。
在下文中一共展示了EscherContainerRecord.AddChildRecord方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateSpContainer
/**
* Create a new Shape
*
* @param isChild <code>true</code> if the Line is inside a group, <code>false</code> otherwise
* @return the record Container which holds this shape
*/
protected EscherContainerRecord CreateSpContainer(bool IsChild)
{
_escherContainer = new EscherContainerRecord();
_escherContainer.SetRecordId(EscherContainerRecord.SP_CONTAINER);
_escherContainer.SetOptions((short)15);
EscherSpRecord sp = new EscherSpRecord();
int flags = EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
if (isChild) flags |= EscherSpRecord.FLAG_CHILD;
sp.SetFlags(flags);
_escherContainer.AddChildRecord(sp);
EscherOptRecord opt = new EscherOptRecord();
opt.SetRecordId(EscherOptRecord.RECORD_ID);
_escherContainer.AddChildRecord(opt);
EscherRecord anchor;
if (isChild) anchor = new EscherChildAnchorRecord();
else
{
anchor = new EscherClientAnchorRecord();
//hack. internal variable EscherClientAnchorRecord.shortRecord can be
//Initialized only in FillFields(). We need to Set shortRecord=false;
byte[] header = new byte[16];
LittleEndian.PutUshort(header, 0, 0);
LittleEndian.PutUshort(header, 2, 0);
LittleEndian.PutInt(header, 4, 8);
anchor.FillFields(header, 0, null);
}
_escherContainer.AddChildRecord(anchor);
return _escherContainer;
}
示例2: CreateSpContainer
/// <summary>
/// Creates the lowerlevel escher records for this shape.
/// </summary>
/// <param name="hssfShape">The HSSF shape.</param>
/// <param name="shapeId">The shape id.</param>
/// <returns></returns>
private EscherContainerRecord CreateSpContainer(HSSFSimpleShape hssfShape, int shapeId)
{
HSSFShape shape = hssfShape;
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherClientDataRecord clientData = new EscherClientDataRecord();
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options=(short)0x000F;
sp.RecordId=EscherSpRecord.RECORD_ID;
short shapeType = objTypeToShapeType(hssfShape.ShapeType);
sp.Options=(short)((shapeType << 4) | 0x2);
sp.ShapeId=shapeId;
sp.Flags=EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
opt.RecordId=EscherOptRecord.RECORD_ID;
AddStandardOptions(shape, opt);
EscherRecord anchor = CreateAnchor(shape.Anchor);
clientData.RecordId=EscherClientDataRecord.RECORD_ID;
clientData.Options=(short)0x0000;
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
return spContainer;
}
示例3: CreateSpContainer
/**
* Creates the low level OBJ record for this shape.
*/
//private ObjRecord CreateObjRecord(HSSFSimpleShape shape, int shapeId)
//{
// ObjRecord obj = new ObjRecord();
// CommonObjectDataSubRecord c = new CommonObjectDataSubRecord();
// c.ObjectType = CommonObjectType.COMBO_BOX;
// c.ObjectId = shapeId;
// c.IsLocked = true;
// c.IsPrintable = false;
// c.IsAutoFill = true;
// c.IsAutoline = false;
// FtCblsSubRecord f = new FtCblsSubRecord();
// LbsDataSubRecord l = LbsDataSubRecord.CreateAutoFilterInstance();
// EndSubRecord e = new EndSubRecord();
// obj.AddSubRecord(c);
// obj.AddSubRecord(f);
// obj.AddSubRecord(l);
// obj.AddSubRecord(e);
// return obj;
//}
/**
* Generates the escher shape records for this shape.
*/
private EscherContainerRecord CreateSpContainer(HSSFSimpleShape shape, int shapeId)
{
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherClientDataRecord clientData = new EscherClientDataRecord();
spContainer.RecordId=(EscherContainerRecord.SP_CONTAINER);
spContainer.Options=((short)0x000F);
sp.RecordId=(EscherSpRecord.RECORD_ID);
sp.Options=((short)((EscherAggregate.ST_HOSTCONTROL << 4) | 0x2));
sp.ShapeId=(shapeId);
sp.Flags=(EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE);
opt.RecordId=(EscherOptRecord.RECORD_ID);
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 17039620));
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE, 0x00080008));
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080000));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, 0x00020000));
HSSFClientAnchor userAnchor = (HSSFClientAnchor)shape.Anchor;
userAnchor.AnchorType = (AnchorType)1;
EscherRecord anchor = CreateAnchor(userAnchor);
clientData.RecordId=(EscherClientDataRecord.RECORD_ID);
clientData.Options=((short)0x0000);
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
return spContainer;
}
示例4: CreateSpContainer
/// <summary>
/// Creates the lowerlevel escher records for this shape.
/// </summary>
/// <param name="hssfShape">The HSSF shape.</param>
/// <param name="shapeId">The shape id.</param>
/// <returns></returns>
private EscherContainerRecord CreateSpContainer(HSSFSimpleShape hssfShape, int shapeId)
{
HSSFPicture shape = (HSSFPicture)hssfShape;
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherRecord anchor;
EscherClientDataRecord clientData = new EscherClientDataRecord();
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options=(short)0x000F;
sp.RecordId=EscherSpRecord.RECORD_ID;
sp.Options=(short)((EscherAggregate.ST_PICTUREFRAME << 4) | 0x2);
sp.ShapeId=shapeId;
sp.Flags=EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
opt.RecordId=EscherOptRecord.RECORD_ID;
// opt.AddEscherProperty( new EscherBoolProperty( EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x00800080 ) ;
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.BLIP__BLIPTODISPLAY, false, true, shape.PictureIndex));
// opt.AddEscherProperty( new EscherComplexProperty( EscherProperties.BLIP__BLIPFILENAME, true, new byte[] { (byte)0x74, (byte)0x00, (byte)0x65, (byte)0x00, (byte)0x73, (byte)0x00, (byte)0x74, (byte)0x00, (byte)0x00, (byte)0x00 } ) ;
// opt.AddEscherProperty( new EscherSimpleProperty( EscherProperties.Fill__FillTYPE, 0x00000003 ) ;
AddStandardOptions(shape, opt);
HSSFAnchor userAnchor = shape.Anchor;
if (userAnchor.IsHorizontallyFlipped)
sp.Flags=sp.Flags | EscherSpRecord.FLAG_FLIPHORIZ;
if (userAnchor.IsVerticallyFlipped)
sp.Flags=sp.Flags | EscherSpRecord.FLAG_FLIPVERT;
anchor = CreateAnchor(userAnchor);
clientData.RecordId=EscherClientDataRecord.RECORD_ID;
clientData.Options=(short)0x0000;
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
return spContainer;
}
示例5: CreateSpContainer
/// <summary>
/// Creates the lowerlevel escher records for this shape.
/// </summary>
/// <param name="hssfShape">The HSSF shape.</param>
/// <param name="shapeId">The shape id.</param>
/// <returns></returns>
private EscherContainerRecord CreateSpContainer(HSSFSimpleShape hssfShape, int shapeId)
{
HSSFShape shape = hssfShape;
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherRecord anchor = new EscherClientAnchorRecord();
EscherClientDataRecord clientData = new EscherClientDataRecord();
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options=(short)0x000F;
sp.RecordId=EscherSpRecord.RECORD_ID;
sp.Options=(short)((EscherAggregate.ST_LINE << 4) | 0x2);
sp.ShapeId=shapeId;
sp.Flags=EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
opt.RecordId=EscherOptRecord.RECORD_ID;
opt.AddEscherProperty(new EscherShapePathProperty(EscherProperties.GEOMETRY__SHAPEPATH, EscherShapePathProperty.COMPLEX));
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 1048592));
AddStandardOptions(shape, opt);
HSSFAnchor userAnchor = shape.Anchor;
if (userAnchor.IsHorizontallyFlipped)
sp.Flags=sp.Flags | EscherSpRecord.FLAG_FLIPHORIZ;
if (userAnchor.IsVerticallyFlipped)
sp.Flags=sp.Flags | EscherSpRecord.FLAG_FLIPVERT;
anchor = CreateAnchor(userAnchor);
clientData.RecordId=EscherClientDataRecord.RECORD_ID;
clientData.Options=((short)0x0000);
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
return spContainer;
}
示例6: TestRecordSize
public void TestRecordSize()
{
DrawingGroupRecord r = new DrawingGroupRecord();
Assert.AreEqual(4, r.RecordSize);
EscherSpRecord sp = new EscherSpRecord();
sp.RecordId = (EscherSpRecord.RECORD_ID);
sp.Options = ((short)0x1111);
sp.Flags = (-1);
sp.ShapeId = (-1);
EscherContainerRecord dggContainer = new EscherContainerRecord();
dggContainer.Options = ((short)0x000F);
dggContainer.RecordId = unchecked((short)0xF000);
dggContainer.AddChildRecord(sp);
r.AddEscherRecord(dggContainer);
Assert.AreEqual(28, r.RecordSize);
byte[] data = new byte[28];
int size = r.Serialize(0, data);
Assert.AreEqual("[EB, 00, 18, 00, 0F, 00, 00, F0, 10, 00, 00, 00, 11, 11, 0A, F0, 08, 00, 00, 00, FF, FF, FF, FF, FF, FF, FF, FF]", HexDump.ToHex(data));
Assert.AreEqual(28, size);
Assert.AreEqual(24, dggContainer.RecordSize);
r = new DrawingGroupRecord();
r.RawData = (new byte[MAX_DATA_SIZE]);
Assert.AreEqual(MAX_RECORD_SIZE, r.RecordSize);
r.RawData = (new byte[MAX_DATA_SIZE + 1]);
Assert.AreEqual(MAX_RECORD_SIZE + 5, r.RecordSize);
r.RawData = (new byte[MAX_DATA_SIZE * 2]);
Assert.AreEqual(MAX_RECORD_SIZE * 2, r.RecordSize);
r.RawData = (new byte[MAX_DATA_SIZE * 2 + 1]);
Assert.AreEqual(MAX_RECORD_SIZE * 2 + 5, r.RecordSize);
}
示例7: TestRecordSize
public void TestRecordSize()
{
EscherContainerRecord r = new EscherContainerRecord();
r.AddChildRecord(new DummyEscherRecord());
Assert.AreEqual(18, r.RecordSize);
}
示例8: CreateSpContainer
/// <summary>
/// Creates the lowerlevel escher records for this shape.
/// </summary>
/// <param name="hssfShape">The HSSF shape.</param>
/// <param name="shapeId">The shape id.</param>
/// <returns></returns>
private EscherContainerRecord CreateSpContainer(HSSFTextbox hssfShape, int shapeId)
{
HSSFTextbox shape = hssfShape;
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherRecord anchor = new EscherClientAnchorRecord();
EscherClientDataRecord clientData = new EscherClientDataRecord();
escherTextbox = new EscherTextboxRecord();
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options=(short)0x000F;
sp.RecordId=EscherSpRecord.RECORD_ID;
sp.Options=(short)((EscherAggregate.ST_TEXTBOX << 4) | 0x2);
sp.ShapeId=shapeId;
sp.Flags=EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE;
opt.RecordId=EscherOptRecord.RECORD_ID;
// opt.AddEscherProperty( new EscherBoolProperty( EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 262144 ) );
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTID, 0));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTLEFT, shape.MarginLeft));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTRIGHT, shape.MarginRight));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTBOTTOM, shape.MarginBottom));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTTOP, shape.MarginTop));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__WRAPTEXT, 0));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__ANCHORTEXT, 0));
opt.AddEscherProperty(new EscherSimpleProperty(EscherProperties.GROUPSHAPE__PRINT, 0x00080000));
AddStandardOptions(shape, opt);
HSSFAnchor userAnchor = shape.Anchor;
// if (userAnchor.IsHorizontallyFlipped())
// sp.Flags(sp.Flags | EscherSpRecord.FLAG_FLIPHORIZ);
// if (userAnchor.IsVerticallyFlipped())
// sp.Flags(sp.Flags | EscherSpRecord.FLAG_FLIPVERT);
anchor = CreateAnchor(userAnchor);
clientData.RecordId=EscherClientDataRecord.RECORD_ID;
clientData.Options=(short)0x0000;
escherTextbox.RecordId=EscherTextboxRecord.RECORD_ID;
escherTextbox.Options=(short)0x0000;
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
spContainer.AddChildRecord(escherTextbox);
return spContainer;
}
示例9: BuildBaseTree
/**
* create base tree with such structure:
* EscherDgContainer
* -EscherSpgrContainer
* --EscherSpContainer
* ---EscherSpRecord
* ---EscherSpgrRecord
* ---EscherSpRecord
* -EscherDgRecord
*
* id of DgRecord and SpRecord are empty and must be set later by HSSFPatriarch
*/
private void BuildBaseTree()
{
EscherContainerRecord dgContainer = new EscherContainerRecord();
EscherContainerRecord spgrContainer = new EscherContainerRecord();
EscherContainerRecord spContainer1 = new EscherContainerRecord();
EscherSpgrRecord spgr = new EscherSpgrRecord();
EscherSpRecord sp1 = new EscherSpRecord();
dgContainer.RecordId = (EscherContainerRecord.DG_CONTAINER);
dgContainer.Options = ((short)0x000F);
EscherDgRecord dg = new EscherDgRecord();
dg.RecordId = EscherDgRecord.RECORD_ID;
short dgId = 1;
dg.Options = ((short)(dgId << 4));
dg.NumShapes = (0);
dg.LastMSOSPID=(1024);
spgrContainer.RecordId=(EscherContainerRecord.SPGR_CONTAINER);
spgrContainer.Options=((short)0x000F);
spContainer1.RecordId=(EscherContainerRecord.SP_CONTAINER);
spContainer1.Options=((short)0x000F);
spgr.RecordId=(EscherSpgrRecord.RECORD_ID);
spgr.Options=((short)0x0001); // version
spgr.RectX1=(0);
spgr.RectY1=(0);
spgr.RectX2=(1023);
spgr.RectY2=(255);
sp1.RecordId=(EscherSpRecord.RECORD_ID);
sp1.Options=((short)0x0002);
sp1.Version=((short)0x2);
sp1.ShapeId=(-1);
sp1.Flags=(EscherSpRecord.FLAG_GROUP | EscherSpRecord.FLAG_PATRIARCH);
dgContainer.AddChildRecord(dg);
dgContainer.AddChildRecord(spgrContainer);
spgrContainer.AddChildRecord(spContainer1);
spContainer1.AddChildRecord(spgr);
spContainer1.AddChildRecord(sp1);
AddEscherRecord(dgContainer);
}
示例10: CreateSpContainer
protected override EscherContainerRecord CreateSpContainer()
{
EscherContainerRecord spContainer = new EscherContainerRecord();
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options = ((short)0x000F);
EscherSpRecord sp = new EscherSpRecord();
sp.RecordId = (EscherSpRecord.RECORD_ID);
sp.Flags = (EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE);
sp.Version = ((short)0x2);
EscherClientDataRecord clientData = new EscherClientDataRecord();
clientData.RecordId = (EscherClientDataRecord.RECORD_ID);
clientData.Options = ((short)(0x0000));
EscherOptRecord optRecord = new EscherOptRecord();
optRecord.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEDASHING, LINESTYLE_SOLID));
optRecord.SetEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080008));
// optRecord.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEWIDTH, LINEWIDTH_DEFAULT));
optRecord.SetEscherProperty(new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, FILL__FILLCOLOR_DEFAULT));
optRecord.SetEscherProperty(new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, LINESTYLE__COLOR_DEFAULT));
optRecord.SetEscherProperty(new EscherBoolProperty(EscherProperties.FILL__NOFILLHITTEST, NO_FILLHITTEST_FALSE));
optRecord.SetEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080008));
optRecord.SetEscherProperty(new EscherShapePathProperty(EscherProperties.GEOMETRY__SHAPEPATH, EscherShapePathProperty.COMPLEX));
optRecord.SetEscherProperty(new EscherBoolProperty(EscherProperties.GROUPSHAPE__PRINT, 0x080000));
optRecord.RecordId = EscherOptRecord.RECORD_ID;
EscherTextboxRecord escherTextbox = new EscherTextboxRecord();
escherTextbox.RecordId = (EscherTextboxRecord.RECORD_ID);
escherTextbox.Options = (short)0x0000;
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(optRecord);
spContainer.AddChildRecord(this.Anchor.GetEscherAnchor());
spContainer.AddChildRecord(clientData);
spContainer.AddChildRecord(escherTextbox);
return spContainer;
}
示例11: ConvertGroup
private void ConvertGroup(HSSFShapeGroup shape, EscherContainerRecord escherParent, Hashtable shapeToObj)
{
EscherContainerRecord spgrContainer = new EscherContainerRecord();
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpgrRecord spgr = new EscherSpgrRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherRecord anchor;
EscherClientDataRecord clientData = new EscherClientDataRecord();
spgrContainer.RecordId=EscherContainerRecord.SPGR_CONTAINER;
spgrContainer.Options=(short)0x000F;
spContainer.RecordId=EscherContainerRecord.SP_CONTAINER;
spContainer.Options=(short)0x000F;
spgr.RecordId=EscherSpgrRecord.RECORD_ID;
spgr.Options=(short)0x0001;
spgr.RectX1=shape.X1;
spgr.RectY1=shape.Y1;
spgr.RectX2=shape.X2;
spgr.RectY2=shape.Y2;
sp.RecordId=EscherSpRecord.RECORD_ID;
sp.Options=(short)0x0002;
int shapeId = drawingManager.AllocateShapeId(drawingGroupId);
sp.ShapeId=shapeId;
if (shape.Anchor is HSSFClientAnchor)
sp.Flags=EscherSpRecord.FLAG_GROUP | EscherSpRecord.FLAG_HAVEANCHOR;
else
sp.Flags=EscherSpRecord.FLAG_GROUP | EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_CHILD;
opt.RecordId=EscherOptRecord.RECORD_ID;
opt.Options=(short)0x0023;
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.PROTECTION__LOCKAGAINSTGROUPING, 0x00040004));
opt.AddEscherProperty(new EscherBoolProperty(EscherProperties.GROUPSHAPE__PRINT, 0x00080000));
anchor = ConvertAnchor.CreateAnchor(shape.Anchor);
// clientAnchor.Col1( ( (HSSFClientAnchor) shape.Anchor ).Col1 );
// clientAnchor.Row1( (short) ( (HSSFClientAnchor) shape.Anchor ).Row1 );
// clientAnchor.Dx1( (short) shape.Anchor.Dx1 );
// clientAnchor.Dy1( (short) shape.Anchor.Dy1 );
// clientAnchor.Col2( ( (HSSFClientAnchor) shape.Anchor ).Col2 );
// clientAnchor.Row2( (short) ( (HSSFClientAnchor) shape.Anchor ).Row2 );
// clientAnchor.Dx2( (short) shape.Anchor.Dx2 );
// clientAnchor.Dy2( (short) shape.Anchor.Dy2 );
clientData.RecordId=(EscherClientDataRecord.RECORD_ID);
clientData.Options=((short)0x0000);
spgrContainer.AddChildRecord(spContainer);
spContainer.AddChildRecord(spgr);
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
ObjRecord obj = new ObjRecord();
CommonObjectDataSubRecord cmo = new CommonObjectDataSubRecord();
cmo.ObjectType= CommonObjectType.GROUP;
cmo.ObjectId=((short)(shapeId));
cmo.IsLocked= true;
cmo.IsPrintable= true;
cmo.IsAutoFill=true;
cmo.IsAutoline=true;
GroupMarkerSubRecord gmo = new GroupMarkerSubRecord();
EndSubRecord end = new EndSubRecord();
obj.AddSubRecord(cmo);
obj.AddSubRecord(gmo);
obj.AddSubRecord(end);
shapeToObj[clientData]=obj;
escherParent.AddChildRecord(spgrContainer);
ConvertShapes(shape, spgrContainer, shapeToObj);
}
示例12: ConvertShapes
private void ConvertShapes(HSSFShapeContainer parent, EscherContainerRecord escherParent, Hashtable shapeToObj)
{
if (escherParent == null) throw new ArgumentException("Parent record required");
IList shapes = parent.Children;
for (IEnumerator iterator = shapes.GetEnumerator(); iterator.MoveNext(); )
{
HSSFShape shape = (HSSFShape)iterator.Current;
if (shape is HSSFShapeGroup)
{
ConvertGroup((HSSFShapeGroup)shape, escherParent, shapeToObj);
}
else
{
AbstractShape shapeModel = AbstractShape.CreateShape(
shape,
drawingManager.AllocateShapeId(drawingGroupId));
shapeToObj[FindClientData(shapeModel.SpContainer)]=shapeModel.ObjRecord;
if (shapeModel is TextboxShape)
{
EscherRecord escherTextbox = ((TextboxShape)shapeModel).EscherTextbox;
shapeToObj[escherTextbox]=((TextboxShape)shapeModel).TextObjectRecord;
// escherParent.AddChildRecord(escherTextbox);
if (shapeModel is CommentShape)
{
CommentShape comment = (CommentShape)shapeModel;
tailRec.Add(comment.NoteRecord);
}
}
escherParent.AddChildRecord(shapeModel.SpContainer);
}
}
// drawingManager.newCluster( (short)1 );
// drawingManager.newCluster( (short)2 );
}
示例13: CreateSpContainer
/**
* Generates the shape records for this shape.
*/
protected override EscherContainerRecord CreateSpContainer()
{
EscherContainerRecord spContainer = new EscherContainerRecord();
EscherSpRecord sp = new EscherSpRecord();
EscherOptRecord opt = new EscherOptRecord();
EscherClientDataRecord clientData = new EscherClientDataRecord();
spContainer.RecordId = (EscherContainerRecord.SP_CONTAINER);
spContainer.Options = ((short)0x000F);
sp.RecordId = (EscherSpRecord.RECORD_ID);
sp.Options = ((short)((EscherAggregate.ST_NOT_PRIMATIVE << 4) | 0x2));
if (Parent == null)
{
sp.Flags = (EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE);
}
else
{
sp.Flags = (EscherSpRecord.FLAG_CHILD | EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE);
}
opt.RecordId = (EscherOptRecord.RECORD_ID);
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.TRANSFORM__ROTATION, false, false, 0));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__RIGHT, false, false, 100));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__BOTTOM, false, false, 100));
opt.SetEscherProperty(new EscherShapePathProperty(EscherProperties.GEOMETRY__SHAPEPATH, EscherShapePathProperty.COMPLEX));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.GEOMETRY__FILLOK, false, false, 0x00010001));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINESTARTARROWHEAD, false, false, 0x0));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEENDARROWHEAD, false, false, 0x0));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEENDCAPSTYLE, false, false, 0x0));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEDASHING, LINESTYLE_SOLID));
opt.SetEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080008));
opt.SetEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEWIDTH, LINEWIDTH_DEFAULT));
opt.SetEscherProperty(new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, FILL__FILLCOLOR_DEFAULT));
opt.SetEscherProperty(new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, LINESTYLE__COLOR_DEFAULT));
opt.SetEscherProperty(new EscherBoolProperty(EscherProperties.FILL__NOFILLHITTEST, 1));
opt.SetEscherProperty(new EscherBoolProperty(EscherProperties.GROUPSHAPE__PRINT, 0x080000));
EscherRecord anchor = Anchor.GetEscherAnchor();
clientData.RecordId = (EscherClientDataRecord.RECORD_ID);
clientData.Options = ((short)0x0000);
spContainer.AddChildRecord(sp);
spContainer.AddChildRecord(opt);
spContainer.AddChildRecord(anchor);
spContainer.AddChildRecord(clientData);
return spContainer;
}
示例14: TestCreateClientAnchorFromContainer
public void TestCreateClientAnchorFromContainer()
{
EscherContainerRecord container = new EscherContainerRecord();
EscherClientAnchorRecord escher = new EscherClientAnchorRecord();
escher.Flag=((short)3);
escher.Col1=((short)11);
escher.Col2=((short)12);
escher.Row1=((short)13);
escher.Row2=((short)14);
escher.Dx1=((short)15);
escher.Dx2=((short)16);
escher.Dy1=((short)17);
escher.Dy2=((short)18);
container.AddChildRecord(escher);
HSSFClientAnchor anchor = (HSSFClientAnchor)HSSFAnchor.CreateAnchorFromEscher(container);
Assert.AreEqual(anchor.Col1, 11);
Assert.AreEqual(escher.Col1, 11);
Assert.AreEqual(anchor.Col2, 12);
Assert.AreEqual(escher.Col2, 12);
Assert.AreEqual(anchor.Row1, 13);
Assert.AreEqual(escher.Row1, 13);
Assert.AreEqual(anchor.Row2, 14);
Assert.AreEqual(escher.Row2, 14);
Assert.AreEqual(anchor.Dx1, 15);
Assert.AreEqual(escher.Dx1, 15);
Assert.AreEqual(anchor.Dx2, 16);
Assert.AreEqual(escher.Dx2, 16);
Assert.AreEqual(anchor.Dy1, 17);
Assert.AreEqual(escher.Dy1, 17);
Assert.AreEqual(anchor.Dy2, 18);
Assert.AreEqual(escher.Dy2, 18);
}
示例15: TestCreateChildAnchorFromContainer
public void TestCreateChildAnchorFromContainer()
{
EscherContainerRecord container = new EscherContainerRecord();
EscherChildAnchorRecord escher = new EscherChildAnchorRecord();
escher.Dx1=((short)15);
escher.Dx2=((short)16);
escher.Dy1=((short)17);
escher.Dy2=((short)18);
container.AddChildRecord(escher);
HSSFChildAnchor anchor = (HSSFChildAnchor)HSSFAnchor.CreateAnchorFromEscher(container);
Assert.AreEqual(anchor.Dx1, 15);
Assert.AreEqual(escher.Dx1, 15);
Assert.AreEqual(anchor.Dx2, 16);
Assert.AreEqual(escher.Dx2, 16);
Assert.AreEqual(anchor.Dy1, 17);
Assert.AreEqual(escher.Dy1, 17);
Assert.AreEqual(anchor.Dy2, 18);
Assert.AreEqual(escher.Dy2, 18);
}