public void AddMetaObject(MetaObject obj) { for (int k = 0; k < MetaObjects.Count; ++k) { if (MetaObjects[k] == null) { MetaObjects[k] = obj; return; } } MetaObjects.Add(obj); }
public void SelectMetaObject(int index, PdfContentByte cb) { MetaObject obj = (MetaObject)MetaObjects[index]; if (obj == null) { return; } int style; switch (obj.Type) { case MetaObject.META_BRUSH: currentBrush = (MetaBrush)obj; style = currentBrush.Style; if (style == MetaBrush.BS_SOLID) { Color color = currentBrush.Color; cb.SetColorFill(color); } else if (style == MetaBrush.BS_HATCHED) { Color color = currentBackgroundColor; cb.SetColorFill(color); } break; case MetaObject.META_PEN: { currentPen = (MetaPen)obj; style = currentPen.Style; if (style != MetaPen.PS_NULL) { Color color = currentPen.Color; cb.SetColorStroke(color); cb.SetLineWidth(Math.Abs((float)currentPen.PenWidth * scalingX / extentWx)); switch (style) { case MetaPen.PS_DASH: cb.SetLineDash(18, 6, 0); break; case MetaPen.PS_DASHDOT: cb.SetLiteral("[9 6 3 6]0 d\n"); break; case MetaPen.PS_DASHDOTDOT: cb.SetLiteral("[9 3 3 3 3 3]0 d\n"); break; case MetaPen.PS_DOT: cb.SetLineDash(3, 0); break; default: cb.SetLineDash(0); break; } } break; } case MetaObject.META_FONT: { currentFont = (MetaFont)obj; break; } } }